找到所有包含mongodb公共字段的文档

时间:2014-01-13 08:52:52

标签: mongodb

我有一个users集合:

{
  id: usera@acme.com,
  uid: '57672373683'
}

{
  id: userb@acme.com,
  uid: '25346346221'
}

{
  id: userc@acme.com,
  uid: '57672373683'
}

我想运行一个返回所有具有公共uid字段的用户的查询,例如,我会在一起看到usera和userc,因为它们具有相同的uid字段。

是否可以使用mongo中的查询?

1 个答案:

答案 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"
        ]
    }
]