mongoTemplate 模糊查询
时间: 2024-10-09 15:14:17 浏览: 42
MongoTemplate是Spring Data MongoDB库提供的模板类,它提供了一种方便的方式来操作MongoDB数据库,包括模糊查询。在进行模糊查询时,通常使用`Specification`和`QuerydslPredicateExecutor`接口配合MongoRepository。
例如,如果你想对某个集合进行按名称字段模糊查找,你可以创建一个`Specification`:
```java
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.QueryDSL;
public Specification<MyDocument> searchByName(String keyword) {
return (root, query, criteriaBuilder) -> criteriaBuilder.or(
criteriaBuilder.like(root.get("name"), "%" + keyword + "%"),
// 可能还有其他条件的组合...
);
}
```
然后将这个`Specification`传递给`MongoTemplate`的`findAll(Specification<T>)`方法:
```java
List<MyDocument> results = mongoTemplate.findAll(searchByName(keyword));
```
这里`%`是一个通配符,表示任意字符序列,所以`like(root.get("name"), "%keyword%")`会匹配包含`keyword`的任何文档的"name"字段。
阅读全文