问题描述
我想知道如何在可能的情况下使用mongoTemplate
使用Spring Data MongoDB执行查找查询,但不返回整个文档吗?使用MongoDB的“本地” Java Sync驱动程序,我可以这样:
Document document = myCollection.find(eq("something",12)).sort(descending("field")).limit(1).projection(include("field")).first();
以便document
仅包含“字段”,而没有其他内容。
如何使用mongoTemplate
做同样的事情,因为使用projection
时似乎找不到与mongoTemplate.findOne(..)
类似的东西。您是否需要使用聚合管道来对mongoTemplate
进行此操作?
我正在使用Spring Data MongoDB 3.0.1.RELEASE版本(春季启动2.3.3)。
解决方法
您可以在查询中使用include()
或exclude()
选项。
例如:
Query query = new Query();
query.fields().include("name").exclude("id");
List<User> john = mongoTemplate.find(query,User.class);