一.简介
pringData MongoDB 提供了find方法,方便我们通过java代码实现对MongoDB的查询操作:
参数说明:
entityClass:实体class,也就是要把文档转换成对应的实体。
String collectionName :类似于mysql的表
query查询语句的实现的方式有两种:
1: 构造函数 Query (Criteria criteria)
例如: 查询条件onumber="002"
mongoTemplate.find (new Query(Criteria.where("onumber").is("002")),entityClass)
例如:onumber="002" and cname="zcy"
mongoTemplate.find (new Query(Criteria.where("onumber").is("002").and("cname").is("zcy")),entityClass)
例如:onumber="002" or cname="zcy"
mongoTemplate.findOne(new Query(Criteria.where("onumber).is("002").orOperator(Criteria.where("cname").is("zcy"))
Criteria提供了很多方法,我们这边先介绍基本文档的查询操作符:
2: 子类BasicQuery
构造函数如下:
通过看源码我们知道document就是一个json:
1: 单个查询: put一个键值对
2: 多个查询: 初始化一个Map
3: 也可以把一个json转成Document对象
例子:
查询name=A的用户
查询name=A和name=b的用户
结果:
说明:
使用Query和子类BasicQuery的区别:
query: 封装了mongodb的查询语句,提供了where,is之类的查询方法
BasicQuery: 需要自己来拼凑查询语句,说白了其实就是拼凑json