我有一系列文件,例如:
{_id: 1, kind: 'cow', nickname: 'bess', weight: 145}
{_id: 2, kind: 'cow', nickname: 'babs', weight: 130}
{_id: 3, kind: 'horse', nickname: 'boris', weight: 140}
{_id: 4, kind: 'horse', nickname: 'gnoris', weight: 110}
我想按“种类”字段对它们进行分组,然后返回每组中重量最大的动物的昵称,组中的最大重量以及组中的动物数量,从而返回:
{'kind': 'cow', 'nickname': 'bess', 'max_weight': 145, 'count': 2}
{'kind': 'horse', 'nickname': 'boris', 'max_weight': 140, 'count': 2}
我可以看到如何使用以下mongo聚合返回每个组的最大权重和计数:
db.aggregate([
{'$group': {'_id': '$kind',
'max_weight': {'$max': '$weight'},
'count': {'$sum': 1}}}
])
有没有办法让这个聚合返回每个组中最重的动物的相应昵称?