三、BasicDBObject+脚本语句
java代码实现:
BasicDBObject groupIndex = new BasicDBObject();
BasicDBObject distinctQuery = new BasicDBObject();
distinctQuery.put("userId", new BasicDBObject("$in", userIds));//UserIds数组
BasicDBObject initIndex = new BasicDBObject();
initIndex.put("count", 0);//给count赋初值
// 脚本(doc代表数据库的数据.prev代表查询结果//prev.count这里的count就是上一步initIndex的count)
String reduce = "function(doc, prev) {if(doc.status==0){prev.count+= 1;};}";
List<Map<String, Object>> basicDBList = (List<Map<String, Object>>) mongoTemplate.getCollection("Collection").group(groupIndex, distinctQuery, initIndex, reduce, null);
最后循环遍历List即可得到结果
有问题的话 欢迎给我回复,我会及时回复您的