Używam Mongoose.js i nie mogę rozwiązać problemu z dokumentem 3 poziomu hierarchii.Mongoose populate embedded
Są 2 sposoby na zrobienie tego.
Pierwsza - bez informacji.
C = new Schema({
'title': String,
});
B = new Schema({
'title': String,
'c': [C]
});
A = new Schema({
'title': String,
'b': [B]
});
Potrzebuję pokazać C rekord. Jak mogę go wypełnić/znaleźć, znając tylko _id z C?
byłem stosowanie try:
A.findOne({'b.c._id': req.params.c_id}, function(err, a){
console.log(a);
});
ale nie wiem jak dostać się z returnet obiekt tylko c object, że muszę.
drugie jeśli pracuje z literatury:
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' }]
});
Jak wypełnić wszystkie B, C, aby uzyskać rekordy hierarchii?
miałem spróbować użyć czegoś takiego:
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);
});
});
});
});
Ale powróci niezdefiniowana dla single_c.title. Czy mogę go zaludnić?
Dzięki.
Byłoby dobrze, aby wybrać nową odpowiedź akceptowanej teraz, że to jest obsługiwane. – JohnnyHK