MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Diferença entre Numberlong(x) e Numberlong(x)


NumberLong(253351454) só funciona para números que são pequenos o suficiente para que eles não precisem ser ... bem, longos:O shell deve representá-los em JS de alguma forma, então ele só pode representar números que

Para números maiores, é necessária uma representação textual porque não há tipo de dados grande o suficiente disponível, portanto, NumberLong("3059300418") com 3059300418 > 253351454 .

Em outras palavras, não, não há diferença . É apenas uma limitação do shell, ou mais genericamente, de JS e números de ponto flutuante.

Advertência:Não tente invocar o construtor com um número muito grande, ou seja, não tente db.foo.insert({"t" : NumberLong(1234657890132456789)}); Como esse número é muito grande para um duplo, causará erros de arredondamento. O número acima seria convertido para NumberLong("1234657890132456704") , o que está errado, obviamente.