mongodb - 有效地计算 MongoDB 中数百万行的远距离值?
问题描述
我正在尝试计算有多少帐户Banana
。我只关心账户总数
以以下数据为例(真实数据可能有数百万个条目):
帐户 | 水果 |
---|---|
AAA | 苹果、橙子、香蕉、梨 |
BBB | 苹果 |
AAA | 苹果、橙 |
AAA | 香蕉,梨 |
AAA | 香蕉 |
CCC | 香蕉 |
预期结果将是:2(AAA 和 CCC 都有 Banana)
这是我的工作但缓慢的查询:
[{
$match: {
'Fruit': 'Banana'
}
}, {
$project: {
"Account": 1
}
}, {
$group: {
"_id": null,
"uniqueAccount": {
$addToSet: "$Account"
}
}
}, {
$project: {
"FinalAccountCounts": {
$size: "$uniqueAccount"
}
}
}]
有人可以帮助我提高上述查询的性能吗?
谢谢你。
解决方案
用这个 :
[{
$match: {
'Fruit': 'Banana'
}
}, {
$project: {
"Account": 1
}
}, {
$group: {
"_id": "$Account",
}
}, {
$count: "FinalAccountCounts"
}
}]
推荐阅读
- c# - 每当我在 IIS 服务器中发布代码时都没有打印输出
- audio - 音频文件转换格式,比特率 - 从 wav 到 aac
- string - 获取 powershell 对象的全部值
- java - 我们是否需要测试,cron 作业是否正在运行?或者是否需要对 cron 作业进行健康检查?
- reactjs - 上传图片宽度和高度进入反应
- java - 处理来自多个平面文件的大量数据并根据需要转换为 xml 格式
- snakemake - Snakemake 通配符意外更改
- php - 提取两个斜线之间的整数
- javascript - 没有正确倒计时
- angular - 错误:找不到具有指定模式的包:d:\a\r1\a\**\*.zip