Tengo un campo en un documento MongoDB que almacena un número arbitrariamente grande. Cuando puedo recuperarlo como un (controlador Java para MongoDB) dbobject, a veces me encuentro con un ClassCastException:MongoDB/Java: escriba safety en DBObjects
DBObject obj = collection.findOne();
long val = (Long)(o.get("numericVal"));
Si el valor almacenado en numericVal
es, por ejemplo, 1234567890, el elenco de largo tiene éxito. Si es, digamos, 12345, DBObject.get() devuelve un doble y el lanzamiento falla.
¿Cómo puedo garantizar la seguridad del tipo cuando deserializo MongoDB DBObjects?
son positivos que el valor es '12345'? ¿Hay alguna forma con mongo de mirar el valor bruto? ¿Tiene una representación JSON? –
lo ingresé a través del shell como 12345, pero cuando lo imprimo en el shell aparece como 12345.0. obviamente ese es un problema en el lado del analizador (controlador de Java), pero no sé cómo sucedió en el lado de Mongo en primer lugar. Dicho esto, me gustaría saber cómo mantener la seguridad del tipo en general con el controlador de Java. – ericsoco