有效计算 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"
       
    }
}]