- グループモデル
- 制限クエリの和に応じ
- ソートその年に作られたモデルの年
- カウント総数で1
に
最大のモデルが作成された年が表示されます。
だからあなたのクエリ(Java実装)は以下のようになります。
// Group by Year
DBObject groupFields = new BasicDBObject("_id", "$_id.year");
//Count total no of models made in that year
groupFields.put("sum", new BasicDBObject("$sum", "$manufacturers.data.modelName"));
//Group the fields
DBObject group = new BasicDBObject("$group", groupFields);
//Sort in descending order inorder to get maximum models
DBObject sortFields = new BasicDBObject("sum", -1);
DBObject sort = new BasicDBObject("$sort", sortFields);
//Limit to one since you need the year when maximum models were made
DBObject limit = new BasicDBObject("$limit", 1);
AggregationOutput output = myColl.aggregate(group,sort,limit);
・ホープ、このことができます。ご入力の編集
:
db.structure.aggregate([
{$unwind : "$manufacturers"},
{$group: {
_id: {
day:"$_id.year"
},
count: { $sum: "$manufacturers.data.modelName" }
}},
{$sort: {count : -1}},
//Limit by 1 to get year when maximum models where made
{$limit : 1},
{$out : "out"}
]);
あなたがサンプルから 'structure'収集し、あなたの予想出力から私たちにいくつかのサンプル文書を示していただけますか? – chridam