Io uso Mongoose.js e non posso risolvere il problema con il documento di gerarchia a 3 livelli.Popolo popolato incorporato
Ci sono 2 modi per farlo.
Primo - senza ref.
C = new Schema({
'title': String,
});
B = new Schema({
'title': String,
'c': [C]
});
A = new Schema({
'title': String,
'b': [B]
});
Ho bisogno di mostrare C record. Come posso popolare/trovarlo, conoscendo solo _id di C?
ero uso prova:
A.findOne({'b.c._id': req.params.c_id}, function(err, a){
console.log(a);
});
ma non so come andare da Returnet un oggetto unico oggetto C che ho bisogno.
Seconda se si lavora con arbitri:
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' }]
});
come popolare tutti i B, record C per ottenere la gerarchia?
ero tenta di utilizzare qualcosa di simile:
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);
});
});
});
});
Ma tornerà definito per single_c.title. C'è modo di popolarlo?
Grazie.
Sarebbe bene scegliere una nuova risposta accettato ora che questo è supportato. – JohnnyHK