我有一个 MongoDB 数据库,它表示公共(public)基因信息的片段,如下所示:
{
_id: 1,
symbol: "GENEA",
db_references: {
"DB A": "DBA000123",
"DB B" ["ABC123", "DEF456"]
}
}
我正在尝试将其映射到一个 @Document
注释的 POJO 类,如下所示:
@Document
Public class Gene {
@Id
private int id;
private String symbol;
private Map<String,Object> db_references;
//getters and setters
}
由于 MongoDB 无模式设计的性质,db_references
字段可以包含一长串可能的键,值有时是数组或其他键值对。我主要关心的是我获取多个 Gene
文档并将它们的 db_references
切片的速度。
我的问题:表示此字段以优化抓取性能的最佳方式是什么?我应该定义一个自定义 POJO 并将该字段映射到它吗?我应该将它设为 BasicDBObject
吗?或者最好根本不使用 Spring Data 映射文档,而只使用 MongoDB Java 驱动程序并解析返回的 DBObjects?
最佳答案
很抱歉您的问题还没有得到解答。
如果 db_references 代表领域内的实际概念,那么最好在类里面获取该领域知识。这总是一个好主意,MongoDB 对此提供了很多帮助。
因此,您可以将此嵌套对象列表存储在 MongoDB 文档中,并在单个查询中获取整个聚合。 Spring Data 也应该处理反序列化。
关于java - 使用 Spring-Data-MongoDB 对嵌套文档建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984022/