दिलचस्प पोस्ट
कोणीय के लिए उपयुक्त संस्करण खोजने में असमर्थ – कन्वेयर स्थापित करें आईपैड एसडीके में मैपकिट में एक मार्ग को आकर्षित करना सूची से आइटम को हटाने का बुद्धिमान तरीका <T> जबकि सी # में एन्यूमरेटिंग बराबर अनुबंध को लागू करने का सही तरीका क्यों सूचकांक -1 लौटाता है? HttpContext.Current.User.Identity.Name खाली है मुझे ऑब्जेक्ट के बजाय एक संकेतक का उपयोग क्यों करना चाहिए? वर्तमान JSON सरणी (जैसे ) को प्रकार में नहीं हटा सकते एफपीडीएफ यूटीएफ -8 एन्कोडिंग (एचओ-टू) बिटमैप एंड्रॉइड में कुछ पिक्सल का रंग कैसे बदला जाए मैं जावा से एक एसएमटीपी संदेश कैसे भेजूं? सी # प्रकार पर स्विच इस पर बटन के साथ एंड्रॉइड अधिसूचना JQuery में, मैं एक तत्व को इसके नाम विशेषता से कैसे चुनूं? स्विफ्ट के साथ स्ट्रिंग में एक सबस्ट्रिंग का सूचकांक

मोंगोज़ में नेस्टेड एआरेट को व्यवस्थित करें

उदाहरण के दस्तावेज़ में मैं कैसे "घटक" आबाद कर सकता हूं:

{ "__v": 1, "_id": "5252875356f64d6d28000001", "pages": [ { "__v": 1, "_id": "5252875a56f64d6d28000002", "page": { "components": [ "525287a01877a68528000001" ] } } ], "author": "Book Author", "title": "Book Title" } 

यह मेरा जेएस है जहां मुझे मोंगोज़ द्वारा दस्तावेज मिलते हैं:

  Project.findById(id).populate('pages').exec(function(err, project) { res.json(project); }); 

Solutions Collecting From Web of "मोंगोज़ में नेस्टेड एआरेट को व्यवस्थित करें"

मुग़ल 4.5 का समर्थन इस

 Project.find(query) .populate({ path: 'pages', populate: { path: 'components', model: 'Component' } }) .exec(function(err, docs) {}); 

ये मेरे लिए सही है:

  Project.find(query) .lean() .populate({ path: 'pages' }) .exec(function(err, docs) { var options = { path: 'pages.components', model: 'Component' }; if (err) return res.json(500); Project.populate(docs, options, function (err, projects) { res.json(projects); }); }); 

प्रलेखन: Model.populate

जैसा कि अन्य लोगों ने उल्लेख किया है, Mongoose 4 का समर्थन करता है। यह नोट करना बेहद जरूरी है कि यदि आवश्यक हो तो आप एक स्तर से गहराई से भी पुनर्खरीद कर सकते हैं- हालांकि यह दस्तावेज़ों में नहीं लिखा गया है:

 Project.findOne({name: req.query.name}) .populate({ path: 'threads', populate: { path: 'messages' , model: 'Message' , populate: { path: 'user' , model: 'User' } } }) 

मैंने यह पाया कि यह बहुत ही उपयोगी है कि एक पंख पंजे बनाने से पहले 2 रेफरी स्तर के गहरे संबंध को आबाद करें। मुंह के मॉडल बस है

 tables = new Schema({ .. tableTypesB: { type: Schema.Types.ObjectId, ref: 'tableTypesB' }, .. } tableTypesB = new Schema({ .. tableType: { type: Schema.Types.ObjectId, ref: 'tableTypes' }, .. } 

फिर पंखों में हुक से पहले:

 module.exports = function(options = {}) { return function populateTables(hook) { hook.params.query.$populate = { path: 'tableTypesB', populate: { path: 'tableType' } } return Promise.resolve(hook) } } 

कुछ अन्य तरीकों की तुलना में इतना आसान है कि मैं इसे हासिल करने की कोशिश कर रहा था।

दस्तावेज़ संदर्भ निकालें

 if (err) { return res.json(500); } Project.populate(docs, options, function (err, projects) { res.json(projects); }); 

यह मेरे लिए काम किया

 if (err) { return res.json(500); } Project.populate(options, function (err, projects) { res.json(projects); });