У меня есть эта схема:
const PuestoSchema = new Schema(
{
//....more data
reportaA: {
type: Schema.Types.ObjectId,
ref: "Puesto"
},
//...
})
module.exports = mongoose.model("Puesto", PuestoSchema)
Он ссылается на себя (другие идентификаторы документов). Поэтому я пытаюсь популяризировать это следующим образом:
function autoPopulate(next) {
let puestoSchema = mongoose.model('Puesto')
this.populate("reportaA")
next()
}
PuestoSchema
.pre("findById", autoPopulate)
.pre("findOne", autoPopulate)
.pre("find", autoPopulate)
Но я получаю эту ошибку.
MissingSchemaError: Схема не была зарегистрирована для модели \ "[объектный объект] \". \ NUse mongoose.model (name, schema)
Есть ли способ вызывать эту модель для использования в качестве ссылки внутри себя?
Тебе надо в модели показывать schema, который должен использовать
function autoPopulate(next) {
let puestoSchema = mongoose.model('Puesto') <-- Aquí
// deberia ser: let puestoSchema = mongoose.model('Puesto', PuestoSchema)
this.populate("reportaA")
next()
}
PuestoSchema
.pre("findById", autoPopulate)
.pre("findOne", autoPopulate)
.pre("find", autoPopulate)