sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB:klass java.lang.Double kan inte castas till klass java.lang.Long

Problemet är förmodligen att något av de angivna fälten faktiskt lagras som Double istället för Long .

Som du kan se i källkod i Document klass, i getLong metod kan du hitta följande:

return (Long) get(key);

Denna cast är den som orsakar felet som rapporterats av Mongo-föraren.

Är det möjligt att några av dina tidsstämplar är skapade med Javascript och NodeJS, kanske med Mongo-skalet? Om så är fallet, beroende på hur du skapar tidsstämpeln, kan värdet på ditt fält infogas som double på grund av hur siffror representeras i Javascript.

Mongo-skalet dokumentationen indikerar :

Och :

Problemet har dokumenterats här i SO i denna fråga . Det är ganska daterat, men det kan vara en möjlig förklaring till ditt problem.

Denna artikel , även om det också är ganska daterat och inte är direkt relaterat till ditt problem, ger lite ytterligare bakgrund.



  1. Hur modellerar man en många självrefererande relation med många föräldrar?

  2. Kan inte POST i nodejs och mongodb på openshift

  3. Hur man benchmarkar mongodb/mongoid-skript, för att jämföra två olika frågetekniker

  4. Loopback:nära filter på objekts underfält