我希望能够持久保存和检索 MongoDB 集合中的地图地图等。我正在使用 Java 通过 Morphia 访问 MongoDB。
我在下面使用的示例是一个集合,其中包含详细说明各种汽车所有者的文档。在此示例中,特定品牌和型号的车辆数量存储在地图中
大多数属性都可以正常工作,没有遇到任何问题,但是对于属性是按以下方式定义的映射的映射的情况:
@Property("vehicles")
private Map<String, Map<String, Integer> vehicles = new HashMap<String, HashMap<String, Integer>>();
该对象被创建(一些值插入到地图中)并保存到 Mongo 数据库中,正如人们所期望的那样:
"vehicles" : {
"FORD" : {
"FIESTA" : 1
},
"TOYOTA" : {
"COROLLA" : 1,
"PRIUS": 1
},
"BMW" : {
"SLK" : 1
}
}
但是,当通过 java 代码检索对象时(MongoDB 控制台上的查询按预期工作))以下列方式...
Query<Owner> q = ds.find(Owner.class);
System.out.println(q.countAll());
Iterable<Owner> i = q.fetch();
for (Owner o : i) {
System.out.println(o);
}
...代码在 q.fetch() 行上以一种可怕的方式死亡。
请帮忙 :)