मैं Mongoose.js का उपयोग करता हूं और 3 स्तर पदानुक्रम दस्तावेज़ के साथ समस्या का समाधान नहीं कर सकता।Mongoose एम्बेडेड
ऐसा करने के 2 तरीके हैं।
पहले - बिना रेफरी के।
C = new Schema({
'title': String,
});
B = new Schema({
'title': String,
'c': [C]
});
A = new Schema({
'title': String,
'b': [B]
});
मुझे सी रिकॉर्ड दिखाने की आवश्यकता है। मैं सी के केवल _id को जानकर, इसे कैसे ढूंढ सकता/ढूंढ सकता हूं?
मैं कोशिश उपयोग किया गया था:
A.findOne({'b.c._id': req.params.c_id}, function(err, a){
console.log(a);
});
लेकिन मुझे नहीं पता है कि Returnet से प्राप्त करने के लिए एक वस्तु केवल एक वस्तु को C है कि मैं की जरूरत है।
दूसरा अगर refs के साथ काम कर रहे:
C = new Schema({
'title': String,
});
B = new Schema({
'title': String,
'c': [{ type: Schema.Types.ObjectId, ref: 'C' }]
});
A = new Schema({
'title': String,
'b': [{ type: Schema.Types.ObjectId, ref: 'B' }]
});
कैसे सब बी को भरने के लिए, सी रिकॉर्ड पदानुक्रम पाने के लिए?
A
.find({})
.populate('b')
.populate('b.c')
.exec(function(err, a){
a.forEach(function(single_a){
console.log('- ' + single_a.title);
single_a.b.forEach(function(single_b){
console.log('-- ' + single_b.title);
single_b.c.forEach(function(single_c){
console.log('--- ' + single_c.title);
});
});
});
});
लेकिन यह single_c.title के लिए अपरिभाषित वापस आ जाएगी:
मैं कुछ इस तरह इस्तेमाल करने की कोशिश थी। मैं इसे पॉप्युलेट करने का कोई तरीका है?
धन्यवाद।
(यहां तक कि विभिन्न डेटाबेस या उदाहरण में) पॉप्युलेट अब है कि इस समर्थित है एक नया स्वीकार किए जाते हैं जवाब चुनने के लिए अच्छा नहीं होगा सकते हैं। – JohnnyHK