
伪代码db.集合.distinct("字段名")示例代码//去重(查询性别种类)db.hero.distinct('gender')// 测试 结果["女","男"]//根据条件去重(查询年龄在12至19岁之间的年龄列表)db.hero.distinct('age',{'age':{$gt:12,$lt:19}})// 测试 结果[13,14,15,16,17,18]
//去重(查询性别种类)@Testvoid findDistinctTest(){Query query =new Query();List<String> genders = mongoTemplate.findDistinct(query,"gender","hero",String.class);genders.stream().forEach(System.out::println);}

//根据条件去重(查询年龄在12至19岁之间的年龄列表)@Testvoid findDistinctByAgeTest(){Query query =new Query();query.addCriteria(new Criteria("age").gt(12).lt(19));List<Integer> genders = mongoTemplate.findDistinct(query,"age","hero",Integer.class);genders.stream().forEach(System.out::println);}

伪代码db.集合.find().limit(行数)示例代码// 分页db.hero.find().limit(2)// 测试结果// 1{"_id": ObjectId("6292e32a63fd032330a30ba4"),"name": "陈","gender": "男","age": NumberInt("55"),"dt": NumberLong("1653793578431116400")}// 2{"_id": ObjectId("6292e8c0fa63510b5822a5f4"),"name": "席盆哲","gender": "男","age": NumberInt("54"),"dt": NumberLong("1653795008039"),"_class": "com.zuoyang.springbootmongo.domain.Hero"}// 根据条件分页(查询年龄在12至19岁之间,性别为男的两条数据)db.hero.find({'age':{$gt:12,$lt:19},'gender':'男'}).limit(2)// 测试结果// 1{"_id": ObjectId("6292e8c1fa63510b5822a654"),"name": "但装赣","gender": "男","age": NumberInt("13"),"dt": NumberLong("1653795009258"),"_class": "com.zuoyang.springbootmongo.domain.Hero"}// 2{"_id": ObjectId("6292e8c1fa63510b5822a7da"),"name": "富入","gender": "男","age": NumberInt("13"),"dt": NumberLong("1653795009741"),"_class": "com.zuoyang.springbootmongo.domain.Hero"}
伪代码db.集合.find().count()示例代码// 统计db.hero.find().count()// 测试结果// 11001001// 根据条件统计(统计年龄在12至19岁之间,性别为男的数量)db.hero.find({'age':{$gt:12,$lt:19},'gender':'男'}).count()// 测试结果// 135404
@Testvoid findTest(){Query query =new Query();// Criteria criteria = new Criteria("age").is(15);// query.addCriteria(criteria);int pageSize = 2; //行数int pageConut = 1; //页数// 统计总行数long count = mongoTemplate.count(query,Hero.class);System.out.println("总行数: "+count);Pageable pageable = PageRequest.of(pageConut,pageSize);query.with(pageable);List<Hero> heroes = mongoTemplate.find(query,Hero.class);for (Hero hero : heroes) {System.out.println(hero.getName());}}

@Testvoid findByAgeTest(){Query query =new Query();Criteria criteria = new Criteria("age").is(15);query.addCriteria(criteria);int pageSize = 2; //行数int pageConut = 1; //页数// 统计总行数long count = mongoTemplate.count(query,Hero.class);System.out.println("总行数: "+count);Pageable pageable = PageRequest.of(pageConut,pageSize);query.with(pageable);List<Hero> heroes = mongoTemplate.find(query,Hero.class);for (Hero hero : heroes) {System.out.println("姓名: "+hero.getName()+" 年龄: "+hero.getAge());}}

/*** 获取性别列表(前端下拉列表数据类型)* @return*/@Overridepublic List<Map> findGenderList(){List<Map> datas = new ArrayList();Query query =new Query();for (String s : mongoTemplate.findDistinct(query, "gender", "hero", String.class)) {Map map = new HashMap();map.put("lable",s);map.put("value",s);datas.add(map);}return datas;}
/*** 获取性别列表(前端下拉列表数据类型)测试用例*/@Testvoid findGenderList(){System.out.println(heroService.findGenderList());}

统计命中条数 按页号与行数返回数据
/*** 分页查询* @param pageConut 页数* @param pageSize 行数* @return*/@Overridepublic Map pageHeros(int pageConut,int pageSize){Map data = new HashMap();Query query =new Query();// 统计总行数long count = mongoTemplate.count(query, Hero.class);Pageable pageable = PageRequest.of(pageConut,pageSize);query.with(pageable);List<Hero> heroes = mongoTemplate.find(query,Hero.class);data.put("pageConut",pageConut);data.put("pageSize",pageSize);data.put("count",count);data.put("data",heroes);return data;}
/*** 分页查询 测试用例* @return*/@Testvoid pageHerosTest(){Map map= heroService.pageHeros(1,3);System.out.println("pageConut: " + map.get("pageConut"));System.out.println("data: " + map.get("data"));System.out.println("count: " + map.get("count"));System.out.println("pageSize: " + map.get("pageSize"));}

统计命中条数 按页号与行数返回数据 根据入参条件筛选数据
/*** 分页条件查询* @param pageConut 页数* @param pageSize 行数* @param gender 性别* @return*/@Overridepublic Map pageHerosByGender(int pageConut, int pageSize, String gender){Map data = new HashMap();Query query =new Query();query.addCriteria(new Criteria("gender").is(gender));// 统计总行数long count = mongoTemplate.count(query, Hero.class);Pageable pageable = PageRequest.of(pageConut,pageSize);query.with(pageable);List<Hero> heroes = mongoTemplate.find(query,Hero.class);data.put("pageConut",pageConut);data.put("pageSize",pageSize);data.put("count",count);data.put("data",heroes);return data;}
/*** 分页条件查询 测试用例* @return*/@Testvoid pageHerosByGender(){Map map= heroService.pageHerosByGender(1,3,"男");System.out.println("pageConut: " + map.get("pageConut"));System.out.println("data: " + map.get("data"));System.out.println("count: " + map.get("count"));System.out.println("pageSize: " + map.get("pageSize"));}

文章转载自左羊公社,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




