これは、 MongoDB 集計フレームワークを使用して実行できるグループ化操作です。
サンプルデータ
> db.foo.find().pretty();
{ "_id" : ObjectId("515ead9c7bb40c6a51b16a68"), "Value" : 12 }
{ "_id" : ObjectId("515ead9d7bb40c6a51b16a69"), "Value" : 12 }
{ "_id" : ObjectId("515ead9f7bb40c6a51b16a6a"), "Value" : 14 }
{ "_id" : ObjectId("515eada07bb40c6a51b16a6b"), "Value" : 8 }
サンプルのグループ化操作
> db.foo.aggregate({$group :
{ _id: "$Value",
count : {$sum : 1},
ids: { $addToSet : "$_id" } } });
これは、等しいグループValue
とそのカウントおよびそれぞれの IDを返します。
{
"result" : [
{
"_id" : 8,
"count" : 1,
"ids" : [
ObjectId("515eada07bb40c6a51b16a6b")
]
},
{
"_id" : 14,
"count" : 1,
"ids" : [
ObjectId("515ead9f7bb40c6a51b16a6a")
]
},
{
"_id" : 12,
"count" : 2,
"ids" : [
ObjectId("515ead9d7bb40c6a51b16a69"),
ObjectId("515ead9c7bb40c6a51b16a68")
]
}
],
"ok" : 1
}
集約フレームワークのドキュメントを読み、その制限を理解する必要があります。