Problemet är förmodligen att något av de angivna fälten faktiskt lagras som Double
istället för Long
.
Som du kan se i källkod
i Document
klass, i getLong
metod kan du hitta följande:
return (Long) get(key);
Denna cast är den som orsakar felet som rapporterats av Mongo-föraren.
Är det möjligt att några av dina tidsstämplar är skapade med Javascript och NodeJS, kanske med Mongo-skalet? Om så är fallet, beroende på hur du skapar tidsstämpeln, kan värdet på ditt fält infogas som double
på grund av hur siffror representeras i Javascript.
Mongo-skalet dokumentationen indikerar :
Och :
Problemet har dokumenterats här i SO i denna fråga . Det är ganska daterat, men det kan vara en möjlig förklaring till ditt problem.
Denna artikel , även om det också är ganska daterat och inte är direkt relaterat till ditt problem, ger lite ytterligare bakgrund.