使用Spring Data MongoDB中的MongoTemplate进行查找查询时,是否仅投影某些字段?
如果可能的话,我想知道如何使用使用Spring Data MongoDB中的MongoTemplate进行查找查询时,是否仅投影某些字段?,spring,mongodb,spring-data-mongodb,mongotemplate,Spring,Mongodb,Spring Data Mongodb,Mongotemplate,如果可能的话,我想知道如何使用mongoTemplate使用Spring数据MongoDB执行find查询,但不返回整个文档?使用MongoDB的“本机”Java同步驱动程序,我可以这样做: Document document = myCollection.find(eq("something", 12)).sort(descending("field")).limit(1).projection(include("field")).f
mongoTemplate
使用Spring数据MongoDB执行find查询,但不返回整个文档?使用MongoDB的“本机”Java同步驱动程序,我可以这样做:
Document document = myCollection.find(eq("something", 12)).sort(descending("field")).limit(1).projection(include("field")).first();
因此,文档
仅包括“字段”,而不包括其他内容
使用mongoTemplate.findOne(…)
时,我似乎找不到类似于projection
的东西,因此如何使用mongoTemplate做同样的事情呢。是否需要使用聚合管道对mongoTemplate
执行此操作
我使用的是Spring Data MongoDB版本3.0.1.RELEASE(Spring boot 2.3.3)。您可以在查询中使用include()
或exclude()
选项
例:
Query Query=new Query();
query.fields().include(“name”).exclude(“id”);
List john=mongoTemplate.find(查询,User.class);
文件参考:
Query query = new Query();
query.fields().include("name").exclude("id");
List<User> john = mongoTemplate.find(query, User.class);