我有一个users
集合:
{
id: usera@acme.com,
uid: '57672373683'
}
{
id: userb@acme.com,
uid: '25346346221'
}
{
id: userc@acme.com,
uid: '57672373683'
}
我想运行一个返回所有具有公共uid
字段的用户的查询,例如,我会在一起看到usera和userc,因为它们具有相同的uid
字段。
是否可以使用mongo中的查询?
答案 0 :(得分:5)
您可以使用Aggregation Framework对用户进行分组。查询将如下:
db.users.aggregate({$group : {_id : "$uid", users : {$addToSet : "$id"}}})
结果如下:
"result" : [
{
"_id" : "25346346221",
"users" : [
"userb@acme.com"
]
},
{
"_id" : "57672373683",
"users" : [
"userc@acme.com",
"usera@acme.com"
]
}
]