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

时间:2013-07-14 15:28:30

标签: mongodb aggregation-framework

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

db.users.aggregate(
  [
    { $project : { month_joined : { $month : "$joined" } } } ,
    { $group : { _id : {month_joined:"$month_joined"} , number : { $sum : 1 } } },
    { $sort : { "_id.month_joined" : 1 } }
  ]
)

代码输出以下内容:

{
  "_id" : {
    "month_joined" : 1
  },
  "number" : 3
},
{
  "_id" : {
    "month_joined" : 2
  },
  "number" : 9
},
{
  "_id" : {
    "month_joined" : 3
  },
  "number" : 5
}

是否也可以让每个对象包含自开始以来已加入的所有用户的总和,因此我不必以编程方式运行对象并自行计算?

示例所需输出:

{
  "_id" : {
    "month_joined" : 1
  },
  "number" : 3,
  "total": 3
},
{
  "_id" : {
    "month_joined" : 2
  },
  "number" : 9,
  "total": 12
},
{
  "_id" : {
    "month_joined" : 3
  },
  "number" : 5,
  "total": 17
}

0 个答案:

没有答案