1
Mongo DB Java 3.x Driver
을 사용하여 group by
쿼리를 구현하는 방법을 배우고 싶습니다. 내 컬렉션을 usernames
을 통해 그룹화하고 결과가 DESC
인 count
으로 정렬하고 싶습니다.Mongo DB Java 3.x 드라이버 - 그룹화 쿼리
db.stream.aggregate({ $group: {_id: '$username', tweetCount: {$sum: 1} } }, { $sort: {tweetCount: -1} });
내가 구현 한 Java
코드입니다 : 여기
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
은 컬렉션에있는 문서 중 인 을 반환합니다.