在MongoDB中查找一组不同的字段

ama*_*man 4 mongodb mongodb-query

我在MongoDB中有以下JSON集合.

{
    "_id": ObjectId("57529381551673386c9150a6"),
    "team_code": 3,
    "team_id": 2
},
{
     "_id": ObjectId("57529381551673386c91514a"),
     "team_code": 4,
     "team_id": 5
},
{
   "_id": ObjectId("57529381551673386c91514b"),
   "team_code": 3,
   "team_id": 2
},
{
   "_id": ObjectId("57529381551673386c91514c"),
   "team_code": 4,
   "team_id": 5,
}
Run Code Online (Sandbox Code Playgroud)

从数据中可以看出,每个都有2个记录,每个记录带有(team_code=3, team_id =2)和(team_code =4, team_id=5).是否有可能获得一组独特的团队代码和团队ID.就像是 ,

{
 "team_code" : 3, "team_id" : 2,
 "team_code" : 4, "team_id" : 5,
}
Run Code Online (Sandbox Code Playgroud)

rob*_*ins 6

您可以使用以下聚合管道执行此操作:

var distinctIdCode = { $group: { _id: { team_code: "$team_code", team_id: "$team_id" } } }
db.foo.aggregate([distinctIdCode])
Run Code Online (Sandbox Code Playgroud)

这会给你:

{ "_id" : { "team_code" : 4, "team_id" : 5 } }
{ "_id" : { "team_code" : 3, "team_id" : 2 } }
Run Code Online (Sandbox Code Playgroud)

此查询返回从集合中的文档创建的新文档.返回的文档具有_id将收集文档分组在team_codeteam_id字段上的结果.