2

私はMongoDBを初めて使用し、集約フレームワークで遊んでいます。ドキュメントの例の 1 つを次に示します。これは、1 か月あたりの新規ユーザーの合計参加数を返し、参加した月を一覧表示します。

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
}
4

0 に答える 0