3

我有一个 MongoDB 数据库,它代表公共基因信息的片段,如下所示:

{
    _id: 1,
    symbol: "GENEA",
    db_references: {
        "DB A": "DBA000123",
        "DB B" ["ABC123", "DEF456"]
    }
}

我正在尝试将其映射到带注释的@DocumentPOJO 类,如下所示:

@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?

4

1 回答 1

0

很抱歉看到您的问题尚未得到解答。

如果 db_references 代表领域内的实际概念,那么最好在类中捕获此领域知识。这总是一个好主意,MongoDB 在这方面提供了很多帮助。

因此,您可以将此嵌套对象列表存储在 MongoDB 文档中,并在单个查询中获取整个聚合。Spring Data 也应该处理反序列化。

于 2014-08-22T17:03:48.300 回答