/**
* @param id id
* @param fields 要查詢的字段
* @return
*/
public InfoSupplementEntity findTest(String id, List<String> fields) {
Query query = new Query(Criteria.where("id").is(id));
Field findFields = query.fields();
if (!CollectionUtils.isEmpty(fields)) {
fields.forEach(findFields::include);
}
return mongoTemplate.findOne(query, InfoSupplementEntity.class);
}
在網上找了一堆,都是用QueryBuilder,BasicDBObject,自己使用報錯,提示沒有該構造方法,版本spring-data-mongodb:2.1.3.RELEASE。
去源碼找了一下,發現Field這個類,通過findFields.include()方法設置查詢字段,測試正常。