因此,我对聚合框架还是个新手。我有两个收藏这些文件:
用户
{
'_id': ObjectId(user1),
'name': 'Name1',
'event': ObjectId(event1)
},
{
'_id': ObjectId(user2),
'name': 'Name2',
'event': ObjectId(event2)
},
{
'_id': ObjectId(user3),
'name': 'Name3',
'event': ObjectId(event1)
}
事件
^{pr2}$预期输出
[
{
'_id': ObjectId(user1),
'name': 'Name1',
'event': 'Party'
},
{
'_id': ObjectId(user2),
'name': 'Name2',
'event': 'Meeting'
},
{
'_id': ObjectId(user3),
'name': 'Name3',
'event': 'Party'
}
]
如你所见,从上面的解释中,我想将用户分组,并根据用户参加过的活动返回用户。在
我目前所做的工作(聚合用户)
[
{
"$lookup":
{
"from": "events",
"localField": "event",
"foreignField": "_id",
"as": "Events"
}
},
{
"$unwind": "$Events"
},
{
"$group":
{
"_id":
{
"type": "$Events.type"
}
}
}
]
我只收到活动文件。输出为:
{ 'type':'Party'},
{'type': 'Meeting'}
Can someone please guide me as to how you can group documents in collection by a field from a document in another collection?
谢谢你!在
以下文档可以帮助您解决问题。请参阅文档>;ref.Document
您可以使用
$project
代替$group
:相关问题 更多 >
编程相关推荐