如何在示例文档中填充“组件”:
{
"__v": 1,
"_id": "5252875356f64d6d28000001",
"pages": [
{
"__v": 1,
"_id": "5252875a56f64d6d28000002",
"page": {
"components": [
"525287a01877a68528000001"
]
}
}
],
"author": "Book Author",
"title": "Book Title"
}
这是我的 JS,我通过 Mongoose 获取文档:
Project.findById(id).populate('pages').exec(function(err, project) {
res.json(project);
});
最佳答案
Mongoose 4.5 支持这个
Project.find(query)
.populate({
path: 'pages',
populate: {
path: 'components',
model: 'Component'
}
})
.exec(function(err, docs) {});
而且您可以加入多个深层。
编辑 2021 年 3 月 17 日:这是库的实现,它在幕后所做的是进行另一个查询来为您获取内容,然后加入内存。虽然这项工作我们真的不应该依赖。它将使您的数据库设计看起来像 SQL 表。这是昂贵的操作并且不能很好地扩展。请尝试设计您的文档以减少连接。
https://stackoverflow.com/questions/19222520/
相关文章:
javascript - 在 Mongoose 中引用另一个模式
mongodb - 什么是 Mongoose 错误 Cast to ObjectId failed
ruby-on-rails - Mongodb:使用前需要了解什么?
mongodb - 如何查看 mongodb 从 mongo shell 监听的端口?
javascript - Mongoose,使用查找选择特定字段
windows - MongoDB 新手无法运行命令 mongo
mongodb - 如何从 Mac OS 终端连接到远程 mongo 服务器