Проблемът вероятно е, че някое от посочените полета всъщност се съхранява като Double
вместо Long
.
Както можете да видите в изходен код
на Document
клас, в getLong
можете да намерите следното:
return (Long) get(key);
Това предаване е това, което причинява грешката, докладвана от драйвера Mongo.
Възможно ли е някои от вашите времеви марки да са създадени с Javascript и NodeJS, може би с обвивката на Mongo? Ако случаят е такъв, в зависимост от това как създавате клеймото за време, стойността на вашето поле може да бъде вмъкната като double
поради начина, по който числата са представени в Javascript.
Mongo shell документацията показва :
И :
Проблемът е документиран тук в SO в този въпрос . Доста е остаряло, но може да е възможно обяснение на вашия проблем.
Тази статия , въпреки че също е доста остарял и не е пряко свързан с вашия проблем, предоставя допълнителна предистория.