我有一个可以包含动态键名的文档:

{
"_id" : ObjectId("51a29f6413dc992c24e0283e"),
"envinfo" : {
    "appName" : "MyJavaApp",
    "environment" : {
        "cpuCount" : 12,
        "heapMaxBytes" : 5724766208,
        "osVersion" : "6.2",
        "arch" : "amd64",
        "javaVendor" : "Sun Microsystems Inc.",
        "pid" : 44996,
        "javaVersion" : "1.6.0_38",
        "heapInitialBytes" : 402507520,
}

这里envinfo的键是事先未知的。
在Spring Data Mongodb中创建映射此文档的实体类的最佳方法是什么?

最佳答案

这是做到这一点的一种方法。可能还有其他更好的方法。

创建一个属性映射,并将该映射存储在mongo中。

public class Env {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private ObjectId id;
    @Field
    private Envinfo envinfo;

    public static class Envinfo {
       @Field
       private String appName;
       @Field
       private Map<String, String> attributes;
    }
}

如果您事先知道 key ,则可以在Envinfo中添加这些属性,并将其保留在属性映射之外。

10-07 18:00