node.js - 在mongodb中查找具有最高顺序的计数和限制的不同嵌套数据
问题描述
我只想找到具有唯一数据的最高计数的 5 条记录,我在下面使用:
db.collection.aggregate(
{$unwind: '$restaurantcompetitors'},
{$unwind: '$restaurantcompetitors.competitorName'},
{$group: {_id: '$restaurantcompetitors.competitorName', count:{$sum:1}}}
)
我得到的结果如下:
{ "_id" : "Platterz.co", "count" : 1 }
{ "_id" : "ChowNow", "count" : 3 }
{ "_id" : "cater2.me", "count" : 1 }
{ "_id" : "App-App.co", "count" : 1 }
{ "_id" : "airportsherpa.io", "count" : 1 }
{ "_id" : "Eat24", "count" : 4 }
{ "_id" : "Chowbus", "count" : 5 }
但我想要:
{ "_id" : "Chowbus", "count" : 5 }
{ "_id" : "Eat24", "count" : 4 }
{ "_id" : "ChowNow", "count" : 3 }
提前致谢,
解决方案
与计数一起使用$sort
,然后使用$limit
db.collection.aggregate(
{ '$unwind': '$restaurantcompetitors' },
{ '$unwind': '$restaurantcompetitors.competitorName' },
{ '$group': {
'_id': '$restaurantcompetitors.competitorName',
'count': { '$sum': 1 }
}},
{ '$sort': { 'count': -1 }},
{ '$limit': 3 },
)
推荐阅读
- java - Mockito doNothing UnfinishedStubbingException
- java - 尝试解析字符串时间戳时出现 ParseException
- .net-core - 使用 Gmail API 添加范围需要验证,但它是一个控制台应用程序
- python - NoReverseMatch 错误 - 在我的 urls.py 中看起来一切正常我做错了什么
- javascript - 在列表元素 Javascript 上设置随机背景
- vuex - NUXT 将数据传递给动态端点中的道具
- java - 如何检查互联网是否在 Android 中实际可用?
- apache-zookeeper - Zookeper 中的法定人数与多数人
- c# - 如何在 WPF MVVM 的视图模型中访问代码隐藏中分配的属性?
- django - Django中index_together字段的慢查询