Problém je pravděpodobně v tom, že kterékoli z uvedených polí je ve skutečnosti uloženo jako Double
místo Long
.
Jak můžete vidět v zdrojový kód
Document
třídy v getLong
můžete najít následující:
return (Long) get(key);
Toto přetypování je příčinou chyby hlášené ovladačem Mongo.
Je možné, že některá z vašich časových razítek jsou vytvořena pomocí Javascriptu a NodeJS, možná pomocí prostředí Mongo? Pokud tomu tak je, v závislosti na tom, jak vytvoříte časové razítko, může být hodnota vašeho pole vložena jako double
kvůli způsobu, jakým jsou čísla reprezentována v JavaScriptu.
Mongo shell uvádí dokumentace :
A :
Problém byl zdokumentován zde v SO v tomto otázka . Je to docela zastaralé, ale mohlo by to být možné vysvětlení vašeho problému.
Tento článek , i když je také poměrně zastaralý a přímo nesouvisí s vaším problémem, poskytuje další pozadí.