如何解决$lookup 到 MongoDB 中的数组
我有两个系列。 用户
{
"_id" : "myid","createdAt" : ISODate("2020-12-26T14:00:11.624Z"),"email" : "testing@gmail.com"
}
群组
{
"_id" : "myidgroup","name" : "student"
"userIds": ["myUserId1","myUserId2"]
}
我想对 groups 集合执行 $lookup
以让所有用户都加入群组
| email | groups. |
|---------------------|------------------|
| testing@gmail.com | student |
我期望这样的输出:
[
{
_id: "myUserId"
email: "testing@gmail.com",groups: [
{
"_id": "myGroupId","name": "student"
}
]
}
]
我知道我们可以在 mongodb 3.6 及更高版本中使用 new $lookup
来实现,但我使用的是 mongodb 3.4。
非常感谢任何帮助。
解决方法
-
$lookup
加入groups
集合,将_id
作为localField
传递,将userIds
作为foreignField
传递 -
$project
显示必填字段
db.users.aggregate([
{
"$lookup": {
"from": "groups","localField": "_id","foreignField": "userIds","as": "groups"
}
},{
$project: {
_id: 1,email: 1,"groups._id": 1,"groups.name": 1
}
}
])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。