Het probleem is waarschijnlijk dat elk van de aangegeven velden daadwerkelijk is opgeslagen als Double
in plaats van Long
.
Zoals je kunt zien in de broncode
van het Document
klasse, in de getLong
methode vindt u het volgende:
return (Long) get(key);
Deze cast is degene die de fout veroorzaakt die is gemeld door de Mongo-driver.
Is het mogelijk dat sommige van uw tijdstempels zijn gemaakt met Javascript en NodeJS, misschien met de Mongo-shell? Als dat het geval is, kan de waarde van uw veld, afhankelijk van hoe u de tijdstempel maakt, worden ingevoegd als double
vanwege de manier waarop getallen worden weergegeven in Javascript.
De mongo-shell documentatie geeft aan :
En :
Het probleem is hier in SO gedocumenteerd in deze vraag . Het is nogal gedateerd, maar het zou een mogelijke verklaring voor je probleem kunnen zijn.
Dit artikel , hoewel ook behoorlijk gedateerd en niet direct gerelateerd aan uw probleem, biedt het wat extra achtergrondinformatie.