gpt4 book ai didi

mongodb - 如何在 MongoDB 中查找特定类别的最常见值?

转载 作者:行者123 更新时间:2023-12-02 03:43:23 25 4
gpt4 key购买 nike

我在 MongoDB 中有一个数据集,如下所示:

{ "name": "Tom's", "category": "coffee shop" },
{ "name": "Red Lobster", "category": "restaurant" },
{ "name": "Tom's", "category": "coffee shop" },
{ "name": "Starbucks", "category": "coffee shop" },
{ "name": "Central Park", "category": "park" },
{ "name": "Office", "category": "office" },
{ "name": "Red Lobster", "category": "restaurant" },
{ "name": "Home", "category": "home" },
{ ... } // and so on

如何找到特定类别最常见的值?例如,coffee shoprestaurant 最常见的值应该分别是汤姆的和红龙虾。

我当前的$aggregate查询似乎只列出了所有数据集中最常见的值:

db.collection.aggregate(
{ "$group": { "_id": { "name": "$name" }, "count": { "$sum":1 } }},
{ "$group": { "_id": "$_id.name", "count": { "$sum": "$count" } }},
{ "$sort": { "count":-1 }}
)

最佳答案

您可以尝试以下查询。

$group 在类别和名称上,获取每个类别和名称组合的计数。

$sort 按类别和计数描述输入文档。

$group 在类别上,使用 $first 选择出现次数最多的文档。

db.collection_name.aggregate([
{
"$group": {
"_id": {
"category": "$category",
"name": "$name"
},
"count": {
"$sum": 1
}
}
},
{
"$sort": {
"_id.category": 1,
"count": -1
}
},
{
"$group": {
"_id": {
"category": "$_id.category"
},
"name": {
"$first": "$_id.name"
},
"count": {
"$first": "$count"
}
}
}
])

关于mongodb - 如何在 MongoDB 中查找特定类别的最常见值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47724519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com