java mongodb多条件分组

DBObjectgroupFields=newBasicDBObject();//存放要查询的内容,id是指的分组groupFields.put("_id","$name... DBObject groupFields = new BasicDBObject(); //存放要查询的内容,id是指的分组
groupFields.put("_id", "$name");
如果我还有一个字段age,在name分组的基础上再通过age分组,请问该怎么写啊,求大神赐教
展开
 我来答
anglewang98
2017-07-19 · TA获得超过535个赞
知道小有建树答主
回答量:420
采纳率:80%
帮助的人:293万
展开全部
// 首先利$match筛选出where条件 此处看你的查询范围条件了
BasicDBObject[] array = {new BasicDBObject("startTimeLong", new BasicDBObject("$gte",beginTime)),  
        new BasicDBObject("startTimeLong", new BasicDBObject("$lt",endTime)) };  
  
BasicDBObject cond = new BasicDBObject();  
cond.put("$and", array);  
DBObject match = new BasicDBObject("$match", cond);  
  
// 利用$project拼装group需要的数据,包含name列、age列  
DBObject fields = new BasicDBObject("name", 1); 
fields.put("age", 1);
  
DBObject project = new BasicDBObject("$project", fields);  
  
// 利用$group进行分组 
DBObject _group = new BasicDBObject("name", "$name");
_group.put("age", "$age");
DBObject groupFields = new BasicDBObject("_id", _group); 
//总数
groupFields.put("count", new BasicDBObject("$sum", 1));
DBObject group = new BasicDBObject("$group", groupFields);  
AggregationOutput output = MongodbUtil.getLogInfoCollection().aggregate(match, project, group);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式