第十二章 springboot + mongodb(复杂查询)
2016-05-04 09:41
274 查看
简单查询:使用自定义的XxxRepository接口即可。(见 第十一章 springboot + mongodb(简单查询))
复杂查询:使用MongoTemplate以及一些查询条件构建类(BasicDBList、BasicDBObject、Criteria等)
1、application.properties
View Code
说明:
getAdminByNameAndSexOrAddress要实现select * from admin where name = ? and (sex = ? or address = ?)
通过BasicDBList、BasicDBObject构建查询参数
findOne返回第一个符合条件的结果、find返回符合条件的结果列表
以上查询的collection是admin(VO的简单类名),也可以指定从某一个collection中查询(查看find、findOne等方法)
注意:mongodb的查询字段必须是小写。
测试:
启动mongo,启动应用,打开swagger,访问即可。
参考:
http://blog.csdn.net/congcong68/article/details/47183209
复杂查询:使用MongoTemplate以及一些查询条件构建类(BasicDBList、BasicDBObject、Criteria等)
1、application.properties
/*********************测试复杂的mongo查询**********************/ @Autowired private AdminRepository adminRepository; @Autowired private MongoTemplate mongoTemplate; @ApiOperation("增加一个Admin") @RequestMapping(value = "/addAdmin", method = RequestMethod.GET) public Admin addAdmin(@RequestParam("name") String name, @RequestParam("sex") Integer sex, @RequestParam("address") String address) { Admin admin = new Admin(); admin.setName(name); admin.setSex(sex); admin.setAddress(address); return adminRepository.save(admin); } @ApiOperation("获取所有的Admin") @RequestMapping(value = "/getAllAdmin", method = RequestMethod.GET) public List<Admin> getAllAdmin() { return adminRepository.findAll(); } @ApiOperation("复杂的admin查询") @RequestMapping(value = "/getAdminByNameAndSexOrAddress", method = RequestMethod.GET) public Admin getAdminByNameAndSexOrAddress(@RequestParam("name") String name, @RequestParam(value="sex",required=false) Integer sex, @RequestParam(value="address",required=false) String address) { /** * OR */ BasicDBList orList = new BasicDBList(); //用于记录 if (sex != null) { orList.add(new BasicDBObject("sex", sex)); } if (StringUtils.isNotBlank(address)) { orList.add(new BasicDBObject("address", address)); } BasicDBObject orDBObject = new BasicDBObject("$or", orList); /** * and */ BasicDBList andList = new BasicDBList(); andList.add(new BasicDBObject("name", name)); andList.add(orDBObject); BasicDBObject andDBObject = new BasicDBObject("$and", andList); return mongoTemplate.findOne(new BasicQuery(andDBObject), Admin.class); }
View Code
说明:
getAdminByNameAndSexOrAddress要实现select * from admin where name = ? and (sex = ? or address = ?)
通过BasicDBList、BasicDBObject构建查询参数
findOne返回第一个符合条件的结果、find返回符合条件的结果列表
以上查询的collection是admin(VO的简单类名),也可以指定从某一个collection中查询(查看find、findOne等方法)
注意:mongodb的查询字段必须是小写。
测试:
启动mongo,启动应用,打开swagger,访问即可。
参考:
http://blog.csdn.net/congcong68/article/details/47183209
相关文章推荐
- MongoDB增删查改
- mongodb 常用操作
- MongoDB学习12_MongoDB学习笔记之 第3章 MongoDB的Java驱动
- MongoDB在实际项目
- mongodb:$each和$addToSet一次添加多个值
- mac下安装mongodb
- MongoDB数据库设计中6条重要的经验法则,part 3
- MongoDB数据库设计中6条重要的经验法则,part 2
- MongoDB数据库设计中6条重要的经验法则,part 1
- MongoDB权限简介
- MongoDB比较查询操作符
- MongoDB查询文档之find函数
- MongoDB删除文档
- MongoDB更新文档
- MongoDB插入文档
- MongoDB删除数据库
- MongoDB创建数据库
- MongoDB权限设置
- MongoDB概念解析
- Linux下安装MongoDB