我正在使用Spring mongo模板在mongodb上运行协议(protocol)查询。我想知道有什么方法可以找出Spring mongo模板中聚合结果的计数吗?

这是我的汇总示例:

Aggregation agg = newAggregation(Class1.class,
            match(criteria),
            group("prop1", "prop2")
            .avg("x").as("averageX")
        );

我只需要知道如何在Spring mongo模板中获得此聚合结果的计数即可。

最佳答案

我的回复来得很晚,但可能会对其他人有所帮助。要获得聚合计数,您需要在末尾添加一个新组:

在聚合的末尾添加-> Aggregation.group()。count()。as(“count”)以获取计数

Aggregation aggregation = newAggregation(
            Aggregation.match(Criteria.where("x").is(x).and("y").exists(true)),
            Aggregation.group("x", "y"),
            Aggregation.group().count().as("count")
);

要获得计数:
Long.parseLong(results.getMappedResults().get(0).get("count").toString());

关于mongodb - 如何在Spring Mongo模板中获取聚合查询计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32785114/

10-12 05:24