有效计算 MongoDB 中数百万行的不同值?
Efficiently count distant value in millions rows in MongoDB?
我正在计算有多少帐户有 Banana
。而我只关心账户总数
以如下数据为例(真实数据可能有百万条):
Account
Fruit
AAA
Apple, Orange, Banana, Pear
BBB
Apple
AAA
Apple, Orange
AAA
Banana, Pear
AAA
Banana
CCC
Banana
预期结果将是: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"
}
}]
我正在计算有多少帐户有 Banana
。而我只关心账户总数
以如下数据为例(真实数据可能有百万条):
Account | Fruit |
---|---|
AAA | Apple, Orange, Banana, Pear |
BBB | Apple |
AAA | Apple, Orange |
AAA | Banana, Pear |
AAA | Banana |
CCC | Banana |
预期结果将是: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"
}
}]