如何计算聚合中的组数?

时间:2020-01-29 13:56:00

标签: mongodb mongodb-query

让我们说我使用$ match和$ group进行汇总请求

db.getCollection('tickets').aggregate({
    $match: {
        test: false
    }
}, {
    $group: {
        _id: "$node_id",
        moyenneEncaisse: {
            $avg: "$amount_net"
        },
        sumEncaisse: {
            $sum: "$amount_net"
        },
        maxValue: {
            $max: "$amount_net"
       }
    }
}, {
    $sort: {
        "_id.maxValue":-1
    }
})

我的问题是:

1)我无法让$ sort工作。无论我要sort:1还是sort:-1,它都会输出相同的随机结果。

2)我想使用size()并获取输出的大小。这里需要计算他找到了多少个小组。但是在这里,我将无法正常工作。也尝试使用.count(),但没有成功。 ->在这里,我不要希望得到一个包含每个组大小的组列表。不,我希望只得到一个数字,该数字将成为组的总数。 例如:{{A:1},{A:2},{A:3},{B:2}},如果我按字母分组,我希望得到的组数= 2,因为有一个组由3个字母A的元素和一组1个字母B的元素组成

排序和获取组数的最佳优化方法是什么?

最佳

0 个答案:

没有答案