序言
目前SpringBoot 整合 mongodb主要的方式就是使用MongoTemplate.
这里整理积累下MongoTemplate的玩法.
查询查询永远是大头~~
根据字段查询//类似于SQL
Query query = new Query(Criteria.where("name").is("cuiyaonan2000@163.com"));
// 查询一条满足条件的数据
Map result = mongoTemplate.findOne(query, Map.class, COLLECTION_NAME);
System.out.println("query: " + query + " | specialFieldQueryOne: " + result);
// 满足所有条件的数据
List ans = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
System.out.println("query: " + query + " | specialFieldQueryAll: " + ans);
And的使用
Query query = new Query(Criteria.where("name").is("cuiyoanan2000@163.com").and("age").is(18));
Map result = mongoTemplate.findOne(query, Map.class, COLLECTION_NAME);
System.out.println("query: " + query + " | andQuery: " + result);
Or的使用
//如下的查询条件,是必须要name为cuiyaonan2000@163.com的,且age=18 或者 sing必须存在的.
Query query = new Query(Criteria.where("name").is("cuiyoanan2000@163.com")
.orOperator(Criteria.where("age").is(18),
Criteria.where("sign").exists(true)));
List result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
System.out.println("query: " + query + " | orQuery: " + result);
//如下标识age为18 或者sing必须存在的查询
query = new Query(new Criteria().orOperator(Criteria.where("age").is(18), Criteria.where("sign").exists(true)));
In
Query query = new Query(Criteria.where("age").in(Arrays.asList(18, 20, 30)));
List result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
System.out.println("query: " + query + " | inQuery: " + result);
比较查询
get:>=
-
gt:>
-
lt= 18 query = new Query(Criteria.where("age").gte(18)); result = mongoTemplate.find(query, Map.class, COLLECTION_NAME); System.out.println("query: " + query + " | compareBigQuery: " + result); // age < 20 Query query = new Query(Criteria.where("age").lt(20)); List result = mongoTemplate.find(query, Map.class, COLLECTION_NAME); System.out.println("query: " + query + " | compareSmallQuery: " + result); // age
关注打赏