Me gustaría poder conservar y recuperar, entre otras cosas, un mapa de mapas en una colección MongoDB. Estoy usando Java para acceder al MongoDB a través de Morphia.Persistencia y recuperación de un mapa de mapas con Morphia y Mongodb
El ejemplo que estoy usando a continuación es una colección que contiene documentos que detallan los propietarios de varios automóviles. En este ejemplo, el número de vehículos de una marca y modelo específicos se almacena en un mapa de mapas
La mayoría de las propiedades funcionan sin problemas, pero para el caso en que una propiedad es un mapa de un mapa definido de la siguiente manera:
@Property("vehicles")
private Map<String, Map<String, Integer> vehicles = new HashMap<String, HashMap<String, Integer>>();
se crea el objeto (algunos valores insertados en el mapa) y persistió a la base de datos Mongo, como es de esperar que sea:
"vehicles" : {
"FORD" : {
"FIESTA" : 1
},
"TOYOTA" : {
"COROLLA" : 1,
"PRIUS": 1
},
"BMW" : {
"SLK" : 1
}
}
Sin embargo, cuando el objeto es recuperado a través de código java (una consulta en el MongoDB co nsole funciona como se espera)) de la siguiente manera ...
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);
}
... el código muere de una manera horrible en la línea q.fetch().
Por favor ayuda :)