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

Rozdíl mezi Numberlong(x) a Numberlong(x)

NumberLong(253351454) funguje pouze pro čísla, která jsou dostatečně malá na to, aby nemusela být ... no, dlouhá:Shell je musí nějak reprezentovat v JS, takže může reprezentovat pouze čísla, která

Pro větší čísla je vyžadována textová reprezentace, protože není k dispozici dostatečně velký datový typ, proto NumberLong("3059300418") s 3059300418 > 253351454 .

Jinými slovy, ne, není v tom žádný rozdíl . Je to jen omezení shellu, nebo obecněji řečeno, JS a čísel s pohyblivou řádovou čárkou.

Upozornění:Nepokoušejte se vyvolat konstruktor s příliš velkým číslem, tj. nezkoušejte db.foo.insert({"t" : NumberLong(1234657890132456789)}); Vzhledem k tomu, že toto číslo je příliš velké pro dvojnásobek, způsobí zaokrouhlovací chyby. Výše uvedené číslo by bylo převedeno na NumberLong("1234657890132456704") , což je samozřejmě špatně.




  1. Filtrujte podle země a prohledávejte text zdarma mongodb pomocí mongoose

  2. Mongoose .save() se neukládá do databáze?

  3. MongoDB:mongoimport ztratí připojení při importu velkých souborů

  4. Mongoose:Odeslání do ObjectId se nezdařilo