El problema probablemente es que cualquiera de los campos indicados en realidad se almacena como Double
en lugar de Long
.
Como puede ver en el código fuente
del Document
clase, en el getLong
método puede encontrar lo siguiente:
return (Long) get(key);
Este lanzamiento es el que está causando el error informado por el controlador Mongo.
¿Es posible que algunas de sus marcas de tiempo se creen con Javascript y NodeJS, quizás con Mongo Shell? Si ese es el caso, dependiendo de cómo cree la marca de tiempo, el valor de su campo podría insertarse como double
debido a la forma en que se representan los números en Javascript.
La documentación de mongo shell indica :
Y :
El problema se ha documentado aquí en SO en este pregunta . Está bastante anticuado, pero podría ser una posible explicación de su problema.
Este artículo , aunque también está bastante anticuado y no está directamente relacionado con su problema, proporciona algunos antecedentes adicionales.