首页 > 解决方案 > 有效地计算 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"
        }
    }
}]

有人可以帮助我提高上述查询的性能吗?

谢谢你。

标签: mongodbmongodb-querypymongo

解决方案


用这个 :

[{
    $match: {
        'Fruit': 'Banana'
    }
}, {
    $project: {
        "Account": 1
    }
}, {
    $group: {
        "_id": "$Account",
        
    }
}, {
    $count: "FinalAccountCounts"
       
    }
}]

推荐阅读