我在MongoDB中有两个集合,我喜欢使用$lookup来映射两个集合并返回特定值。
作业集合
{
"_id": ObjectId("5b0d2b2c7ac4792df69a9942"),
"title": "software engineer",
"categories" : [
ObjectId("5b0d16ee7ac4792df69a9924"),
ObjectId("5b0d47667ac4792df69a9994")
],
"deadline": 2021-05-03T06:29:54.634+00:00
}job_categories集合:
{
"_id": ObjectId(5b0d16ee7ac4792df69a9924),
"name": "front-end"
}
{
"_id": ObjectId(5b0d47667ac4792df69a9994),
"name": "full-stack"
}作业集合categories数组中的objectid与job_categories的_id匹配。如何使用$lookup和$project返回如下结果。
预期结果:
{
"_id": ObjectId("5b0d2b2c7ac4792df69a9942"),
"title": "software engineer",
"categories" : [
ObjectId("5b0d16ee7ac4792df69a9924"),
ObjectId("5b0d47667ac4792df69a9994")
],
"deadline": 2021-05-03T06:29:54.634+00:00,
"categories_list": [
"front-end",
"full-stack"
]
}预期的结果添加了一个新的字段categories list,数组值引用了job_categories集合的name键值。
发布于 2021-07-28 13:29:16
直接执行$lookup即可。然后将字段$categories_list.name $project为categories_list。
这是供您参考的Mongo playground。
https://stackoverflow.com/questions/68554612
复制相似问题