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

Differenza tra Numberlong(x) e Numberlong(x)

NumberLong(253351454) funziona solo per numeri abbastanza piccoli da non dover essere... beh, lunghi:la shell deve rappresentarli in qualche modo in JS, quindi può rappresentare solo numeri che

Per numeri più grandi, è necessaria una rappresentazione testuale perché non è disponibile un tipo di dati sufficientemente grande, quindi NumberLong("3059300418") con 3059300418 > 253351454 .

In altre parole, no, non c'è differenza . È solo una limitazione della shell, o più in generale, di JS e numeri in virgola mobile.

Avvertenza:non tentare di invocare il costruttore con un numero troppo grande, ad es. non provare db.foo.insert({"t" : NumberLong(1234657890132456789)}); Poiché quel numero è troppo grande per un doppio, causerà errori di arrotondamento. Il numero sopra verrebbe convertito in NumberLong("1234657890132456704") , che è sbagliato, ovviamente.