MongodbTemlate使用条件查询和聚合函数

MongodbTemlate是MongoOperations的实现类  首先我们可以注入一个MongoOperations

假如我们有以下数据 :

idnameageclass
1李雷121901
2乔治131901
3丽丽121902

 

 

 

 

 

操作一 :查询1901班的所有数据


BasicDBObject queryObject = new BasicDBObject();
DBObject fieldObject = new BasicDBObject();
//设置查询结果返回name和id
fieldObject.put("name", true);
fieldObject.put("id", true);
//查询条件
Query query = new BasicQuery(queryObject, fieldObject);
query .addCriteria(Criteria.where("class")
        .is(1091));//置入查询条件
//执行查询
List<Map> all=mongoOps.findAll(query,Map.class)

操作二:查询1901班年龄大于11岁小于13岁的人

//其实就是修改一下查询条件
Criteria.where("class")
                .is(1901)
                .and(age)
                .gte(11)
                .lte(12));

操作三:查询每班年级最大的人按id大小排序,此处需要用到group 和sort,这里我们使用Aggregation聚合类

    //Aggregation 可以使用多个AggregationOperation的参数
    Aggregation aggregation1 = Aggregation.newAggregation(  Aggregation.group("class"              ).max("age" ).as("age" ),Aggregation.sort(new Sort(new Sort.Order(Sort.Direction.DESC,   "id"))));
  //执行查询 返回结果  参数1位上方的查询条件  参数2是集合名字相当于数据库的表名 参数是返回字段的类
  AggregationResults<BasicDBObject> outputTypeCount1 =
                mongoOps.aggregate(aggregation1, COLLCTION_NAME, BasicDBObject.class);

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值