- 排序,指定排序方式。
- 分页查询
- 多条件查询
- 正则条件查询
- 获取指定字段
@Autowired
private MongoTemplate mongoTemplate;
// 排序条件封装
Sort sort =Sort.by(Sort.Direction.DESC, "age"); // 依照 age 字段 降序
// 分页查询条件封装,排序条件加入
Pageable pageable = PageRequest.of(0, 10, sort); // 0 页号 // 10 页大小 // sort 排序条件
// 查询对象,里面添加 查询条件
Query query = new Query();
// 查询条件 Criteria 条件
Criteria criteria = new Criteria();
// query 添加条件
ArrayList<String> nameList = Arrays.asList("zs","lisi");
query.addCriteria(Criteria.where("name").in(nameList )); // name 的值要 在 nameList 里
// 添加 province = 北京 条件
criteria.and("province").is("北京");
// 正则条件封装
Pattern addressPattern = Pattern.compile(".*河.*$", Pattern.CASE_INSENSITIVE); // 任意字符开头,中间有——河,这个字,任意字符结尾
criteria.and("address").regex(addressPattern);
// 最后将没有加入的条件加入
query.addCriteria(criteria);
// 指定返回的字段有 name 字段
query.fields().include("name");
// 执行查询
List<Person> personList = mongoTemplate.find(query.with(pageable),Person.class); // Person 是返回的数据对象
Person.class
@Document(collection = "tb_person") // collection 名字
public class Person{
@Field("name") // 指定对应字段在 collection 里
private String name;
@Field("age")
private Integer name;
/*getter setter ... */
}
更多方法类似。