MongoDB-按字段计数,按计数排序



我是MongoDB的新手,也是进行超基础查询的新手,但我没有成功创建如下查询:

我有这样的收藏,每份文件代表一份";使用";利益(例如,第一行说明利益"123"使用过一次(:

[
{
"id" : "1111",
"benefit_id":"123"
},
{
"id":"2222",
"benefit_id":"456"
}, 
{
"id":"3333",
"benefit_id":"456"
},
{
"id":"4444",
"benefit_id":"789"
}
]

我需要创建一个输出数组的q查询。顶部是使用次数最多的福利以及使用次数。

对于上面的例子,查询应该输出:

[
{
"benefit_id":"456",
"cnt":2
},
{
"benefit_id":"123",
"cnt": 1
}, 
{
"benefit_id":"789",
"cnt":1
}
]

我尝试过使用文档和$sortByCount,但没有成功。

$组

  • $group通过benefit_id并使用$sum获取计数
  • $sortcount降序排列
db.collection.aggregate([
{
$group: {
_id: "$benefit_id",
count: { $sum: 1 }
}
},
{ $sort: { count: -1 } }
])

游乐场


$sortByCount

使用$sortByCount操作员进行相同操作

db.collection.aggregate([
{ $sortByCount: "$benefit_id" }
])

游乐场

最新更新