关键词:
- 简单查询:使用自定义的XxxRepository接口即可。(见 第十一章 springboot + mongodb(简单查询))
- 复杂查询:使用MongoTemplate以及一些查询条件构建类(BasicDBList、BasicDBObject、Criteria等)
1、application.properties
1 #mongodb note:mongo3.x will not use host and port,only use uri
2 #spring.data.mongodb.host=192.168.22.110
3 #spring.data.mongodb.port=27017
4 #spring.data.mongodb.database=myfirstMongodb
5 spring.data.mongodb.uri=mongodb://192.168.22.110:27017/myfirstMongodb
说明:
- mongo2.x支持以上两种配置方式
- mongo3.x仅支持uri方式
2、Admin
package com.xxx.firstboot.domain; import org.springframework.data.annotation.Id; /** * 测试复杂的mongo查询 */ public class Admin { @Id private String adminId; private String name; private Integer sex; private String address; public String getAdminId() { return adminId; } public void setAdminId(String adminId) { this.adminId = adminId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
注意:
- @Id必须有
3、AdminRepository
package com.xxx.firstboot.mongo; import org.springframework.data.mongodb.repository.MongoRepository; import com.xxx.firstboot.domain.Admin; public interface AdminRepository extends MongoRepository<Admin, String> { }
说明:该接口用于简单查询。这里是一个空接口,具有CRUD功能。
4、CustomerController
/*********************测试复杂的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); }
说明:
- 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
第十二章课下测试补交博客
第十二章课下测试补交博客 查看详情
高数(a)下第十二章
12.112.2 12.3 查看详情
第十二章----数组
importjava.util.Arrays;publicclassTest{publicstaticvoidmain(String[]args){//数组的定义//int[]a=newint[5];//inta1[]=newint[3];//int[]a2={2,4,6};int[]a=newint[4];boolean[]b=newboolean[4];char[]c=newchar[4];S 查看详情
第十二章软件包管理
第十二章、软件包管理本章内容?软件运行环境?软件包基础?rpm包管理?yum管理?定制yum仓库?编译安装软件运行和编译ABI:ApplicationBinaryInterfaceWindows与Linux不兼容ELF(ExecutableandLinkableFormat)PE(PortableExecutable)库级别的虚拟化:Linux:WINEWi... 查看详情
第十二章
一、变量的作用域(有效的使用范围)1、变量有2种 1.1成员变量(属性)声明在类的里面,方法的外面 &n 查看详情
“全栈2019”java第十二章:变量
...开发环境JDKv11IntelliJIDEAv2018.3文章原文链接“全栈2019”Java第十二章:变量下一章“全栈2019”Java第十三章:基本数据类型学习小组加入同步学习小组,共同交流与进步。方式一:关注头条号Gorhaf,私信“Java学习小组”。方式二:... 查看详情
第十二章:类的无参方法
第十二章:类的无参方法类定义类的方法类的方法必须包括:1.方法名称   查看详情
第十二章网络管理
一、ip地址管理hostnamectlset-hostnames1.test.comnmcligeneralhostnames1.test.comnmclidevicestatusnmclideviceshowens32nmtuinmclihelpUsage:nmcli[OPTIONS]OBJECTCOMMAND|helpOPTIONS-t[erse]terseoutput-p[retty]p 查看详情
第十二章随笔
第十二章,Android下综合项目介绍之一随着社会电子信息化的不断发展,人们在居家中实验的电器越来越多,由此带来的安全隐患也越来越多,为了减少电器的不合理使用带来的异常情况,由此带来的安全隐患也有了明... 查看详情
java第十二章继承笔记
Java第十二章 继承笔记一、使用继承: 1)方便修改代码 2)减少代码量二、super继承object类:super访问父类的无参构造;super指的是object的无参构造。 例:子类调用父类:super.属性/super.... 查看详情
javascriptdom编程艺术-学习笔记(第十二章)
第十二章1.本章是综合前面章节的所有东西的,一个综合实例2.流程:①项目简介:a.获取原始资料(包括文本、图片、音视频等) b.站点... 查看详情
第十二章存储之secret
1、Secret存在意义Secret解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者PodSpec中。Secret可以以Volume或者环境变量的方式使用2、Secret有三种类型① ServiceAccount:用来访问KubernetesAPI,由Kuberne... 查看详情
第十二章笔记
类的无参方法学习本章用到的单词document:文档,文件display:展览method:方法vesrion:版本orient:东方,使适应parameter:参数since:自从,既然,因为 类的方法概述类是有一组具有相... 查看详情
第十二章-语义分析之数据流检查
参考:(1)javac后期需要重点阅读的类(2)Flow类注释解读 1、简介 1、语句的活跃性分析 2、异常检查 3、变量赋值 查看详情
第十二章(类的无参方法)
Java注释: //:单行注释 /**/:多行注释 /** */:JavaDoc注释 方法: 语法: 访问修饰符& 查看详情
第十二章lnmp架构
12.1?LNMP架构介绍12.2MySQL安装《MySQL安装》(1)下载Mysql,解压,挪动,移除之前的LAMP的mysqlrm-rf/usr/local/mysqlrm-rf/etc/init.d/mysqldcd/usr/local/srcwgethttp://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86 查看详情
第十二章:查找与处理文件
目标 使用locate 使用find 使用GnomeSearchtool locate基于预先定义的数据库定义,这个数据库保存了所有文件的路径和权限 非实时查询   查看详情
第十二章:查找与处理文件
目标 使用locate 使用find 使用GnomeSearchtool locate基于预先定义的数据库定义,这个数据库保存了所有文件的路径和权限 非实时查询   查看详情