sql >> Database teknologi >  >> NoSQL >> MongoDB

Forskellen mellem Numberlong(x) og Numberlong(x)

NumberLong(253351454) virker kun for tal, der er små nok til, at de ikke behøver at være ... ja, lange:Skallen skal repræsentere dem i JS på en eller anden måde, så den kan kun repræsentere tal, der

For større tal kræves en tekstlig repræsentation, fordi der ikke er nogen stor nok datatype tilgængelig, derfor NumberLong("3059300418") med 3059300418 > 253351454 .

Med andre ord, nej, der er ingen forskel . Det er blot en begrænsning af skallen, eller mere generelt set, af JS- og flydende kommatal.

Advarsel:Forsøg ikke at kalde konstruktøren med et for stort tal, dvs. prøv ikke db.foo.insert({"t" : NumberLong(1234657890132456789)}); Da det tal er alt for stort til en fordobling, vil det forårsage afrundingsfejl. Ovenstående tal vil blive konverteret til NumberLong("1234657890132456704") , hvilket naturligvis er forkert.




  1. Redis lua hvornår skal man virkelig bruge det?

  2. Dårlig opslagssammenlægningsydelse

  3. mangler lboost_thread-mt i mongodb cpp driver (ubuntu server x64)

  4. Hadoop Kort/Reducer vs indbygget Kort/Reducer