MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB:klasa java.lang.Double nie może być rzutowana na klasę java.lang.Long

Problem prawdopodobnie polega na tym, że którekolwiek ze wskazanych pól jest faktycznie przechowywane jako Double zamiast Long .

Jak widać w kod źródłowy Document w klasie getLong metoda można znaleźć następujące:

return (Long) get(key);

To rzutowanie powoduje błąd zgłoszony przez sterownik Mongo.

Czy to możliwe, że niektóre z twoich znaczników czasu są tworzone za pomocą JavaScript i NodeJS, być może za pomocą powłoki Mongo? W takim przypadku, w zależności od sposobu utworzenia znacznika czasu, wartość pola może zostać wstawiona jako double ze względu na sposób, w jaki liczby są reprezentowane w JavaScript.

Powłoka mongo dokumentacja wskazuje :

I :

Problem został udokumentowany tutaj w SO w tym pytanie . Jest dość przestarzały, ale może być możliwym wyjaśnieniem Twojego problemu.

Ten artykuł , choć również dość przestarzały i niezwiązany bezpośrednio z Twoim problemem, zapewnia dodatkowe informacje.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Szukaj w wielu kolekcjach w MongoDB

  2. Zalety MongoDB | Wady MongoDB

  3. scalić wiele dokumentów w jeden dokument z obydwoma polami dokumentów w MongoDB

  4. pobierz obiekt mongodb _id po upsert z php

  5. Mongoose wybierz pola do powrotu z findOneAndUpdate