Javascript 按最高计数进行聚合

Javascript 按最高计数进行聚合,javascript,node.js,mongodb,aggregation-framework,Javascript,Node.js,Mongodb,Aggregation Framework,如何使用聚合框架按最高计数聚合结果 { "type": "dog", "name": "buddy", "count": 67 }, { "type": "dog", "name": "buddy", "count": 34 }, { "type": "dog", "name": "tucker", "count": 17 }, { "type": "dog", "name": "tucker", "count": 52 }, { "type"

如何使用聚合框架按最高计数聚合结果

{
  "type": "dog",
  "name": "buddy",
  "count": 67
},
{
  "type": "dog",
  "name": "buddy",
  "count": 34
},
{
  "type": "dog",
  "name": "tucker",
  "count": 17
},
{
  "type": "dog",
  "name": "tucker",
  "count": 52
},
{
  "type": "cat",
  "name": "gizmo",
  "count": 11
}
我正在尝试聚合上面的结果,因此如果
具有相同的
名称
,我希望得到计数最高的狗。所以它看起来像:

{
  "type": "dog",
  "name": "buddy",
  "count": 67
},
{
  "type": "dog",
  "name": "tucker",
  "count": 52
},
{
  "type": "cat",
  "name": "gizmo",
  "count": 11
}

我曾尝试使用
$group
进行此操作,但我真的不知道如何通过最高计数来区分结果。

计数
降序对所有文档进行排序,然后从
类型
名称
的每个分组中首先进行
计数

db.test.aggregate([
    {$sort: {count: -1}},
    {$group: {_id: {type: '$type', name: '$name'}, count: {$first: '$count'}}}
])
输出:

{
    "result" : [ 
        {
            "_id" : {
                "type" : "cat",
                "name" : "gizmo"
            },
            "count" : 11
        }, 
        {
            "_id" : {
                "type" : "dog",
                "name" : "tucker"
            },
            "count" : 52
        }, 
        {
            "_id" : {
                "type" : "dog",
                "name" : "buddy"
            },
            "count" : 67
        }
    ],
    "ok" : 1
}

我知道这不是火箭科学,谢谢。仍在学习的聚合框架