sql >> Databasteknik >  >> NoSQL >> MongoDB

OverflowError:MongoDB kan bara hantera upp till 8-byte ints?

BSON-specifikationen — MongoDB:s ursprungliga binära utökade JSON-format/datatyp — stöder endast 32-bitars (signerade) och 64-bitars (signerade) heltal — 8 byte är 64 bitar.

Det maximala heltalsvärdet som kan lagras i en 64-bitars int är:9,223,372,036,854,775,807

I ditt exempel verkar du ha större ID, till exempel:11,611,747,760,398,664,000

Jag gissar att appen som genererar denna data använder uint64-typer (osignerad kan innehålla x2-1-värden).

Jag skulle börja med att titta på någon av dessa potentiella lösningar, om möjligt:

  • Ändra den andra sidan för att använda int64 (signerade) typer för ID:n.
  • Ersätter de inkommande ID:n med ObjectId() eftersom du då får en 12 byte ~ GUID för dina unika ID.



  1. mongodb grupp och undergrupp räknas

  2. Fråga på Mongoid Hash Field

  3. MongoDB föredraget schema för inbäddade samlingar. dokument kontra matriser

  4. Hur man returnerar alla fält utan specificera efter $group stage