我应该聚合合并两个集合吗?
Should i aggregate to merge two collection?
我是 MongoDB 和 NoSQL 的新手,我正在做一个包含 2 个集合的简单应用程序 tasks_list 和 user,这样的结构
tasks_list
{
"_id" : ObjectId("61c03dfb47370c024193afde"),
"name" : "complete unit 2",
"createBy" : ObjectId("61c03f6b47370c024193afe0")
}
用户
{
"_id" : ObjectId("61c03f6b47370c024193afe0"),
"name" : "admin",
"image" : "img_default.jpg"
}
我想获取task_list的文档,所以我想我应该调用find() 2 collection tasks_list 、users 或使用聚合加入集合并在 tasks_list 中使用 find()。什么是正确的方法?
您可以使用aggregate()
查询:
db.tasks_list.aggregate([
{
"$lookup": {
"from": "users",
"localField": "createBy",
"foreignField": "_id",
"as": "createBy"
}
},
{
"$set": {
"createBy": {
"$first": "$createBy"
}
}
}
])
如果你使用的是Mongoose,你可以使用populate()
方法:
TaskLists.find().populate('createBy');
我是 MongoDB 和 NoSQL 的新手,我正在做一个包含 2 个集合的简单应用程序 tasks_list 和 user,这样的结构
tasks_list
{
"_id" : ObjectId("61c03dfb47370c024193afde"),
"name" : "complete unit 2",
"createBy" : ObjectId("61c03f6b47370c024193afe0")
}
用户
{
"_id" : ObjectId("61c03f6b47370c024193afe0"),
"name" : "admin",
"image" : "img_default.jpg"
}
我想获取task_list的文档,所以我想我应该调用find() 2 collection tasks_list 、users 或使用聚合加入集合并在 tasks_list 中使用 find()。什么是正确的方法?
您可以使用aggregate()
查询:
db.tasks_list.aggregate([
{
"$lookup": {
"from": "users",
"localField": "createBy",
"foreignField": "_id",
"as": "createBy"
}
},
{
"$set": {
"createBy": {
"$first": "$createBy"
}
}
}
])
如果你使用的是Mongoose,你可以使用populate()
方法:
TaskLists.find().populate('createBy');