कल्पना कीजिए मैं निम्नलिखित मॉडल:नेवला populating पथ
# 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"
मॉडल डी और ई किसी अन्य वस्तु के संदर्भ की जरूरत नहीं है और सुविधा की खातिर इसलिए अब सूचीबद्ध नहीं हैं।
सभी संदर्भों के साथ मॉडल "ए" को पॉप्युलेट करने का सबसे अच्छा अभ्यास क्या है? इस प्रकार वर्तमान में मैं इस कार्य को हल (यह एक उदाहरण-विधि क्योंकि मैं इसे अक्सर जरूरत है):
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, @
यही एक रास्ता है मैं सभी संदर्भ क्योंकि उसके बाद फिर से कई रास्तों के साथ कई रास्तों को आबाद करने पॉप्युलेट करने के लिए मिल गया है विभिन्न मॉडलों में काफी मुश्किल है। मैं पहले से ही नीचे से एक की तरह एक समाधान की कोशिश की लेकिन के रूप में एक कल्पना कर सकते हैं, यह केवल पिछले आबादी के ऊपर लिख होगा:
@
.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"