MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB:impossibile eseguire il cast della classe java.lang.Double nella classe java.lang.Long

Il problema probabilmente è che uno qualsiasi dei campi indicati è effettivamente memorizzato come Double invece di Long .

Come puoi vedere nel codice sorgente del Document classe, nel getLong metodo puoi trovare quanto segue:

return (Long) get(key);

Questo cast è quello che causa l'errore segnalato dal driver Mongo.

È possibile che alcuni dei tuoi timestamp vengano creati con Javascript e NodeJS, magari con la shell Mongo? In tal caso, a seconda di come crei il timestamp, il valore del tuo campo potrebbe essere inserito come double a causa del modo in cui i numeri sono rappresentati in Javascript.

La documentazione della shell mongo indica :

E :

Il problema è stato documentato qui in SO in questo domanda . È piuttosto datato, ma potrebbe essere una possibile spiegazione del tuo problema.

Questo articolo , sebbene anche piuttosto datato e non direttamente correlato al tuo problema, fornisce alcune informazioni aggiuntive.