【发布时间】:2022-01-19 16:36:25
【问题描述】:
我想编写一个 $lookup 查询示例 User.aggregate([{ $match }]).lookup({... 来列出具有额外键 _team 的用户,其中用户被分配为任何团队的成员。这是示例 mongo 集合 -
第一集
# Users Collection -
{
"_id": "1",
"name": "Sankhnad"
},
{
"_id": "2",
"name": "Shweta"
}
第二集
# Teams Collection -
{
"_id": "1",
"name": "Rock Team",
"_members": [
2
]
},
{
"_id": "2",
"name": "Star Team",,
"_members": [
1,
]
},
{
"_id": "3",
"name": "Yeh Team",
"_members": [
1,
2
]
}
现在我想对 users 和 teams 集合进行单个 $lookup / aggregate 查询,以列出所有用户及其各自的团队或选定的用户及其所在用户所在的团队分配在_members。
所有用户的预期输出 -
# Output -
{
"_id": "1",
"name": "Sankhnad",
"_teams": [
{
"_id": "2",
"name": "Star Team",,
"_members": [
1,
]
},
{
"_id": "3",
"name": "Yeh Team",
"_members": [
1,
2
]
}
]
},
{
"_id": "2",
"name": "Shweta",
"_teams": [
{
"_id": "1",
"name": "Rock Team",
"_members": [
2
]
},
{
"_id": "3",
"name": "Yeh Team",
"_members": [
1,
2
]
}
]
}
非常感谢大家的支持。
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query