1
Mongo DB Java 3.x Driver
を使用してgroup by
クエリを実装する方法を学習したいと思います。私はusernames
を通して私のコレクションをグループ化し、結果のcount
によって結果を並べ替えるといいです。DESC
ここでMongo DB Java 3.xドライバ - グループ化クエリ
は私がJava
同等のものを実装したいシェルクエリである:ここで
db.stream.aggregate({ $group: {_id: '$username', tweetCount: {$sum: 1} } }, { $sort: {tweetCount: -1} });
は、私が実装したJava
コードは次のとおりです。
BasicDBObject groupFields = new BasicDBObject("_id", "username");
// count the results and store into countOfResults
groupFields.put("countOfResults", new BasicDBObject("$sum", 1));
BasicDBObject group = new BasicDBObject("$group", groupFields);
// sort the results by countOfResults DESC
BasicDBObject sortFields = new BasicDBObject("countOfResults", -1);
BasicDBObject sort = new BasicDBObject("$sort", sortFields);
List <BasicDBObject> pipeline = new ArrayList <BasicDBObject>();
pipeline.add(group);
pipeline.add(sort);
AggregateIterable <Document> output = collection.aggregate(pipeline);
私は必要な結果がのカウントですドキュメントはusername
でグループ化されています。 countOfResults
は、コレクションに含まれているドキュメントの総数がであるを返します。