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

MongodbTemlate是MongoOperations的实现类  首先我们可以注入一个MongoOperationsMongodbTemlate使用条件查询和聚合函数_第1张图片

假如我们有以下数据 :

id name age class
1 李雷 12 1901
2 乔治 13 1901
3 丽丽 12 1902

 

 

 

 

 

操作一 :查询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 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 outputTypeCount1 =
                mongoOps.aggregate(aggregation1, COLLCTION_NAME, BasicDBObject.class);

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(MongodbTemlate使用条件查询和聚合函数)