MongoDB组有多个字段

时间:2018-01-12 09:57:06

标签: php mongodb group-by

现在我有一个像这样结构的mongodb:

{
   _id:
   content:{
            A:a
            B:....
           }

   _id:
   content:{
            C:a
            D:....
           }

   _id:
   content:{
            C:c
            D:....
           }
}

我需要总结内容.A和content.C。并将结果排序以获得前5名。 期待这样的结果:

a:2
c:1

给我一​​个Example.Better使用php mongo query pls。

1 个答案:

答案 0 :(得分:0)

这应该让你开始:

collection.aggregate({
    $group: {
        _id: { $ifNull: [ "$content.A", "$content.C" ] }, // use "A" if it's available otherwise use "C"
        count: { $sum: 1 } // count documents per group
    }
}, {
    $sort: { "count": -1 } // sort descending
}, {
    $limit: 5 // get top 5 only
})