Le problème est probablement que l'un des champs indiqués est en fait stocké en tant que Double
au lieu de Long
.
Comme vous pouvez le voir dans le code source
du Document
classe, dans le getLong
méthode, vous pouvez trouver ce qui suit :
return (Long) get(key);
Ce casting est celui qui est à l'origine de l'erreur signalée par le pilote Mongo.
Est-il possible que certains de vos horodatages soient créés avec Javascript et NodeJS, peut-être avec le shell Mongo ? Si tel est le cas, selon la façon dont vous créez l'horodatage, la valeur de votre champ peut être insérée en tant que double
en raison de la façon dont les nombres sont représentés en Javascript.
La documentation mongo shell indique :
Et :
Le problème a été documenté ici dans SO dans ce question . C'est assez daté, mais cela pourrait être une explication possible de votre problème.
Cet article , bien qu'il soit également assez ancien et non directement lié à votre problème, fournit des informations supplémentaires.