MongoDB聚合分组文档没有准确性

时间:2016-02-03 07:18:27

标签: mongodb mongodb-query

使用MongoDB的聚合管道,我希望能够按值对文档进行分组而不进行任何累积。

例如,我想按key分组此集合:

[
   {
      "_id":"323232",
      "name":"Something",
      "key":"A",
      "price":"100"
   },
   {
      "_id":"157236",
      "name":"Another thing",
      "key":"B",
      "price":75
   },
   {
      "_id":"555232",
      "name":"Something or another",
      "key":"B",
      "price":78
   }
]

期望的结果:

[
   {
       "_id":"A",
       "results": [
           {
              "_id":"323232",
              "name":"Something",
              "key":"A",
              "price":"100"
           }
       ]
   },
   {
       "_id":"A",
       "results": [
           {
              "_id":"157236",
              "name":"Another thing",
              "key":"B",
              "price":75
           },
           {
              "_id":"555232",
              "name":"Something or another",
              "key":"B",
              "price":78
           }
       ]
   }
]

2 个答案:

答案 0 :(得分:2)

这个怎么样?

db.test.aggregate([
    {
        $sort : {"price" : 1}
    },
    {
        $group : {
            _id : '$key',
            results : {
                $push : {
                    "_id":"$_id",
                    "name":"$name",
                    "key":"$key",
                    "price":"$price"
                }
            }
        }
    }
]).pretty()

答案 1 :(得分:2)

检查这个

db.coll.aggregate([
                    { "$group" : {
                              '_id' :'$key',
                              result: {$push:'$$ROOT'}
                            }
                    }
                 ]);