quién normalmente negra mangosta mamba leon huron gana cuento contra cobra cascabel mongoose mongoose-populate mongoose-schema

mongoose - normalmente - Ruta de poblado de mangosta con múltiples subtratas



mangosta vs leon (1)

@ .populate path: "_bId" model: "B" populate: [ { path: "_cId" model: "C" populate: path: "_eId" model: "E" } { path: "_dId" } ] , (error) =>

Esta solución funciona totalmente bien y me acabo de enterar de esto.

Imagina que tengo los siguientes modelos:

# MODEL A schemaA = mongoose.Schema _bId: type: mongoose.Schema.Types.ObjectId ref: "B" # MODEL B schemaB = mongoose.Schema _cId: type: mongoose.Schema.Types.ObjectId ref: "C" _dId: type: mongoose.Schema.Types.ObjectId ref: "D" # MODEL C schemaC = mongoose.Schema _eId: type: mongoose.Schema.Types.ObjectId ref: "E"

Los modelos D y E no tienen ninguna otra referencia a objeto y, por razones de conveniencia, por lo tanto, ya no se enumeran.

¿Cuál es la mejor práctica para poblar el modelo "A" con todas las referencias? Actualmente resuelvo esta tarea de la siguiente manera (es un método de instancia porque lo necesito con bastante frecuencia):

schemaA.methods = populateAll: (cb) -> @ .populate path: "_bId" model: "B" populate: path: "_cId" model: "C" populate: path: "_eId" model: "E" , (error) => return cb error, @ if error? D.findById @._bId._dId .exec (error, d) => return cb error, @ if error? @._bId._dId = d return cb error, @

Esta es la única forma que encontré para rellenar todas las referencias porque es bastante difícil poblar varias rutas con múltiples rutas en diferentes modelos. Ya probé una solución como la siguiente, pero como se puede imaginar, solo sobrescribiría las poblaciones anteriores:

@ .populate path: "_bId" model: "B" populate: path: "_cId" model: "C" populate: path: "_eId" model: "E" .populate path: "_bId" model: "B" populate: path: "_dId" model: "D"