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