使用Spring-Data-MongoDB为嵌套文档建模

时间:2013-11-14 17:13:20

标签: java spring mongodb spring-data

我有一个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?

1 个答案:

答案 0 :(得分:0)

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

如果db_references表示域中的实际概念,那么在类中捕获此域知识要好得多。这总是一个好主意,MongoDB可以帮助它。

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