1
我想知道如何使用Mongoose在MongoDB中保存多個對其他文檔的引用。將一個引用保存到其他文檔並不是什麼大事,但是當您想要將多個引用保存到其他文檔並在稍後填充它時,它會變得很複雜。如何使用Mongoose將多個參考文件保存到MongoDB中的其他文檔?
讓我們看看我有什麼:
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var Book = Schema({
title: String,
reviews: [{ type: Schema.Types.ObjectId, ref: 'Review' }]
});
var Review = Schema({
body: String
});
var Book = mongoose.model('Book', bookSchema);
var Review = mongoose.model('Book', reviewSchema);
var reviewItem = new Review({body: "review content"});
Book.find({}).exec(function(err, collection) {
if(collection.length === 0) {
reviewItem.save(function (err) {
if (err) return handleError(err);
var bookItem = new Book({
title: "book title",
reviews: reviewItem._id
});
bookItem.save(function (err) {
if (err) return handleError(err);
})
})
}
})
在這個例子中,我參考它在bookItem
節省reviewItem
,但我想保存reviewItem
對象與引用數組的數組中bookItem
。我怎麼能做到這一點?
填充Book
當我期待的結果:
[
{
"_id": "547b1a4685207124a085d0c5",
"title": "The Enterprise And Scrum",
"reviews": [
{
"_id": "547b1a4685207124a085d0c3",
"body": "review 1"
},
{
"_id": "543d99564d01f3de94655ba2",
"body": "review 2"
},
{
"_id": "543d995625755d19ba72863d",
"body": "review 3"
}
]
}
]