Mongodb返回组中的所有值

时间:2016-12-19 03:40:33

标签: mongodb mongodb-query aggregation-framework

我的应用有以下文档。

Key

分组" a"和" b"字段,然后如果文件有相同的" a"和" b"然后按列表获取每个数据。 如何返回以下输出列表?

 {
“name” : “sample1”,
“a” : 1,
“b” : 1000,
“value” : “AA”
 },
 {
 “name” : “sample2”,
 “a” : 1,
 “b” : 1000,
 “value” : “BB”
 },
 {
“name” : “sample1”,
“a” : 2,
“b” : 2000,
“value” : “CC”
 }  

1 个答案:

答案 0 :(得分:1)

你可以通过像这样的聚合框架来实现这个目标

 db.grp.aggregate([
   {
      $group:{
         _id:{
            a:"$a",
            b:"$b"
         },
         result:{
            $push:{
               name:"$name",
               value:"$value"
            }
         }
      }
   }
])

它返回

{
   "_id":{
      "a":2,
      "b":2000
   },
   "result":[
      {
         "name":"sample1",
         "value":"CC"
      }
   ]
}{
   "_id":{
      "a":1,
      "b":1000
   },
   "result":[
      {
         "name":"sample1",
         "value":"AA"
      },
      {
         "name":"sample2",
         "value":"BB"
      }
   ]
}