
java mongodb多条件分组
DBObjectgroupFields=newBasicDBObject();//存放要查询的内容,id是指的分组groupFields.put("_id","$name...
DBObject groupFields = new BasicDBObject(); //存放要查询的内容,id是指的分组
groupFields.put("_id", "$name");
如果我还有一个字段age,在name分组的基础上再通过age分组,请问该怎么写啊,求大神赐教 展开
groupFields.put("_id", "$name");
如果我还有一个字段age,在name分组的基础上再通过age分组,请问该怎么写啊,求大神赐教 展开
1个回答
展开全部
// 首先利$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);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询