我们在使用mongo DB数据库进行查询的时候,只使用MongoRepository进行查询,实现部分复杂的查询的时候会变得有些吃力。我们可以使用MongoTemplate实现比较复杂的查询。
首先需要配置maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
配置简单的application.properties文件
#uri: mongodb://username:password@ip:port/admin
spring.data.mongodb.uri=mongodb://yin:yin@localhost:27017
spring.data.mongodb.database=xc_cms
这是事先准备好的数据
下面对部分常用命令进行演示
@Autowired
MongoTemplate mongoTemplate;
@Override
public JsonVO testMongoFind() {
JsonVO jsonVO = new JsonVO(200, "success");
//返回只返回某些字段
Query query4 = new Query();
query4.fields().include("valueInt").include("valueInt2");
List<MongoTestEntity> entityList2 = mongoTemplate.find(query4, MongoTestEntity.class, "mongoTest");
System.out.println(entityList2);
//返回mongno不为null 或者 ""
Query query5 = new Query();
List<String> testLst = new ArrayList<>();
testLst.add("");
testLst.add(null);
query5.addCriteria(Criteria.where("valueStr").nin(testLst));
List<MongoTestEntity> entityList3 = mongoTemplate.find(query5, MongoTestEntity.class, "mongoTest");
System.out.println(entityList3);