我们如何使用查询通过一些过滤器的聚合来查找字段总和?

时间:2019-06-21 12:28:54

标签: mongodb aggregation-framework

我有一个包含如下文档的集合:

{ _id: ObjectID(), userName: "aa", amount: 50, date: 1561119425317 }

我要查询的值是timeStamp1和timeStamp2。

我想要按userName分组的金额之和,则查询为

db.collection.aggregate([
{$match: {date: {$gte: timeStamp1, $lte: timeStamp2}},
{$group: {"_id" : "$userName", total:{"$sum" : "$amount"}}}
])

我希望将结果分成5部分,例如将timeStamp1到timeStamp2的间隔分成5部分,然后我希望每个间隔的结果相同。

如何在不运行5次以上查询的情况下执行此操作(每个间隔一次)。 原因是将来间隔的数量可能会增加到30或40。

1 个答案:

答案 0 :(得分:0)

这似乎是$bucket

的一种情况

我现在无法键入汇总示例,但是该管道阶段的文档非常好。