Pada Mongoose 3.6, kemampuan untuk mengisi dokumen terkait secara rekursif dalam kueri telah ditambahkan. Berikut adalah contoh bagaimana Anda dapat melakukannya:
UserList.findById(listId)
.populate('refUserListItems')
.exec(function(err, doc){
UserListItem.populate(doc.refUserListItems, {path:'refSuggestion'},
function(err, data){
console.log("User List data: %j", doc);
cb(null, doc);
}
);
});
Dalam hal ini, saya mengisi array id di 'refUserListItems' dengan dokumen referensinya. Hasil kueri kemudian diteruskan ke kueri populasi lain yang mereferensikan bidang dokumen asli yang diisi yang ingin saya isi juga - 'refSuggestion'.
Perhatikan populasi (internal) kedua - di sinilah keajaiban terjadi. Anda dapat terus menyarangkan populasi ini dan menempelkan lebih banyak dan lebih banyak dokumen hingga Anda membuat grafik sesuai kebutuhan.
Perlu sedikit waktu untuk mencerna cara kerjanya, tetapi jika Anda mengerjakannya, itu masuk akal.