spring - 使用 Spring Data MongoDB 中的 MongoTemplate 进行查找查询时仅投影某些字段?
问题描述
我想知道,如果可能的话,我如何使用 Spring Data MongoDB 执行查找查询,mongoTemplate
但不返回整个文档?使用 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 (spring boot 2.3.3)。
解决方案
您可以在查询中使用include()
或选项。exclude()
前任:
Query query = new Query();
query.fields().include("name").exclude("id");
List<User> john = mongoTemplate.find(query, User.class);
推荐阅读
- alexa - 拦截 Google Assistant 或 Alexa 上的语音命令
- c# - 开发 ViewModel 以在 WPF 视图和旧的不可观察数据类型之间进行接口
- javascript - 使用 ReactJS 从同级组件调用方法
- xcode - Xcode 项目导航器中的问号是什么意思?
- listview - 使用 ListView.builder 一次显示 X 个项目
- java - JNI AttachNativeThread 在 Linux 上总是以 -1 返回值失败
- python - 胶子顺序模型:参数返回空集合
- verilog - 在verilog中将合成什么$finish?
- vb.net - 该进程无法访问该文件,因为它正在被另一个进程使用,但我已经关闭了流写入器?
- java - 二叉搜索树删除问题