我有一个MongoDB数据库,代表公共基因信息的片段,如下所示:
{
_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?
答案 0 :(得分:0)
很抱歉看到您的问题尚未得到解答。
如果db_references表示域中的实际概念,那么在类中捕获此域知识要好得多。这总是一个好主意,MongoDB可以帮助它。
因此,您可以将此嵌套对象列表存储在MongoDB文档中,并在单个查询中获取整个聚合。 Spring Data也应该处理反序列化。