mongodb - 如何在 Spring Data MongoDB 的数据投影中包含许多字段
问题描述
我们目前使用如下语法限制在某些但不是全部(基于权限)MongoDB 查询下返回的字段:
import org.springframework.data.mongodb.core.query.Query;
Query query = new Query();
query.fields()
.include("field1")
.include("field2")
.include("field3")
.include("field4");
不幸的是,我们有很多领域,想知道是否有更好的方法来解决这个问题?查询对象最终被传递给一个 mongoTemplate 实例以针对数据库执行。
解决方案
我认为您可以通过投影阶段,因为如果您创建所需对象的 POJO(在投影之后),它将自动发生……
例如,我们有一个名为 Petrucci 的类:
@Data //<--- I highly recommand to use lombok
@JsonIgnoreProperties
public class Petrucci {
int f1;
int f2;
int f3;
}
然后当你运行:
Petrucci john = mongoTemplate.findOne(
Query.query(Criteria.where("f1").is("majesty")), Petrucci.class);
投影将自动发生,只剩下 Petrucci 类的字段。
推荐阅读
- git - git push:对象为12311134字节,大于本仓库对象的1048576字节限制
- java - 我的场景大纲似乎没有以我以前见过的格式输出
- java - 从多个数据包写入字节到文件
- python - 如何知道在 spaCy NLP 输出中按空格连接的位置
- node.js - 无法使用 lokijs 将数据保存在文件中
- java - Java:Mac 上的 Activity Monitor 与 JVisualVM 中的内存消耗
- objective-c - 无法从该类的 Swift 扩展中的 Objective-C 类调用某些方法
- r - 为什么在 for 循环后矩阵中的条目不会改变?
- java - 每次进行代码更改时,Test Runner 类都需要很长时间来构建
- ios - SceneKit UIImage 材质为黑色