1、介绍
Spring Data MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的CRUD的操作。
2、MongoDB的查询语法
db.orders.find({{<field1>:<value1>,<field2>: <value2>, ... } },{field1:<boolean>, field2: <boolean> ... })
3、 mongoTemplate.find (query, entityClass)参数说明
query:查询的内容(下面进行详细的介绍)
entityClass:实体class,也就是要把文档转换成对应的实体。
4、Query (Criteria criteria)–构造函数
org.springframework.data.mongodb.core.query
参数Criteria :org.springframework.data.mongodb.core.query.Criteria
Criteria是标准查询的接口,可以引用静态的Criteria.where的把多个条件组合在一起,就可以轻松地将多个方法标准和查询连接起来,方便我们操作查询语句。
例如:
查询条件onumber="1234"
mongoTemplate.find (new Query(Criteria.where("onumber").is("1234")),entityClass)
多个条件(and)组合查询时:onumber="1234" and cname="zcy"
(这里可以将第一个参数条件抽取出来,这样更加方便我们查看)
Query query = Query.query(Criteria.where("onumber").is("1234").and("cname").is("zcy"));
mongoTemplate.find (query,entityClass)
多个条件(or)组合查询时:onumber="1234" or cname="zcy"
mongoTemplate.findOne(newQuery(newCriteria().orOperator(Criteria.where("onumber").is("1234"),Criteria.where("cname").is("zcy"))),entityClass);
Criteria提供了很多方法,这里只展示一些常用的方法,如下图所示。
5、MongoTemplate的findOne方法查询
findOne返回满足指定查询条件的文档,如果多个文档满足查询,该方法返回第一个文档,根据自然顺序返回文件在磁盘上的顺序,在覆盖的集合中,自然顺序与插入顺序相同。如果没找到对应的文档,会返回null。
mongoTemplate.findOne(query,entityClass)