假设我有这样的书籍和页面的猫鼬模型:
mongoose.model("Book", new Schema({
title: String
});
和这个
mongoose.model("Page", new Schema({
pageNumber: Number,
_bookId: {type: ObjectId, ref: "Book"}
});
每个页面都会跟踪它属于哪本书。现在我想要一组书籍,其页面的 pageNumber 为 500。
我可以执行以下操作:
Page.find({pageNumber: 500})
.populate("_bookId")
.then(function (pages) {
var books = [];
pages.forEach(function (page) {
books.push(page._bookId); // page._bookId now contains a Book document
});
return q(books);
}).then(function (books) {
// Do something with the books
});
然而,我在页面上循环的部分似乎很麻烦,这种提取可能由 mongo 完成。我的问题是这将如何工作。
使用填充甚至是最好的方法吗?我想保持模式不变。