sql >> Databáze >  >> NoSQL >> MongoDB

OverflowError:MongoDB zvládne pouze 8bajtové ints?

Specifikace BSON — Nativní binární rozšířený formát / datový typ JSON MongoDB — podporuje pouze 32bitová (se znaménkem) a 64bitová (se znaménkem) celá čísla — 8 bajtů je 64 bitů.

Maximální celočíselná hodnota, kterou lze uložit do 64bitové int, je:9,223,372,036,854,775,807

Ve vašem příkladu se zdá, že máte větší ID, například:11,611,747,760,398,664,000

Hádám, že aplikace generující tato data používá typy uint64 (nepodepsané může obsahovat hodnoty x2-1).

Začal bych tím, že bych se podíval na jedno z těchto potenciálních řešení, pokud je to možné:

  • Změna druhé strany tak, aby pro ID používala typy int64 (podepsané).
  • Nahrazení příchozích ID pomocí ObjectId() tak získáte 12bajtový ~ GUID pro svá jedinečná ID.



  1. Jak odstranit sloupec z podřízené kolekce

  2. Nelze spustit MongoDB jako službu

  3. Připojení MongoDB z mobilní aplikace nebo aplikace založené na prohlížeči

  4. Redis Python - jak odstranit všechny klíče podle konkrétního vzoru v pythonu, bez iterace pythonu