我有一个可以包含动态键名的文档:
{
"_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中添加这些属性,并将其保留在属性映射之外。