如何使用mongodb聚合框架获得运行总数?

如何使用mongodb聚合框架获得运行总数?,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我是MongoDB的新手,我正在使用聚合框架。文档中的一个示例显示了以下内容,其中返回了每月新用户加入的总数,并列出了加入的月份: db.users.aggregate( [ {$project:{month_joined:{$month:“$joined”}}, {$group:{{u id:{month_joined:“$month_joined”},编号:{$sum:1}}}, {$sort:{“{u id.month}:1}” ] ) 代码输出以下内容: { “_id”:{ “加入月份

我是MongoDB的新手,我正在使用聚合框架。文档中的一个示例显示了以下内容,其中返回了每月新用户加入的总数,并列出了加入的月份:

db.users.aggregate(
[
{$project:{month_joined:{$month:“$joined”}},
{$group:{{u id:{month_joined:“$month_joined”},编号:{$sum:1}}},
{$sort:{“{u id.month}:1}”
]
)
代码输出以下内容:

{
“_id”:{
“加入月份”:1
},
“数字”:3
},
{
“_id”:{
“加入月份”:2
},
“数字”:9
},
{
“_id”:{
“加入月份”:3
},
“数字”:5
}
是否也可以让每个对象包含自开始以来加入的所有用户的总和,这样我就不必以编程方式运行对象并自己计算

所需输出示例:

{
“_id”:{
“加入月份”:1
},
“数字”:3,
“总数”:3
},
{
“_id”:{
“加入月份”:2
},
“数字”:9,
“总数”:12
},
{
“_id”:{
“加入月份”:3
},
“数字”:5,
“总数”:17
}

示例是一个只有12次迭代(12个月)的循环:)这不是聚合的自然适合,我建议您考虑在客户端上实现它。当然,在这个问题中,只有12次迭代。但你可以想象一个更大的问题。这只是一个示例。再说一遍,我不知道有没有一种有效且实用的方法可以通过聚合框架来实现这一点。正如我所说的,最好在客户机上应用运行总数。如果您使用的是AF,那么它将是一个有限的结果集。您能解释一下“如果您使用的是AF,那么它将是一个有限的结果集”是什么意思吗?感谢聚合框架中的结果不会超过16MB(因为这是结果的限制)