NumberLong(253351454)
十分に小さい数である必要がない場合にのみ機能します...まあ、長い:シェルは何らかの方法でそれらをJSで表す必要があるため、
数値が大きい場合は、使用できるデータ型が十分に大きくないため、テキスト表現が必要です。したがって、NumberLong("3059300418")
3059300418 > 253351454
を使用 。
言い換えれば、いいえ、違いはありません 。これは、シェル、またはより一般的に言えば、JSと浮動小数点数の制限にすぎません。
警告:数が多すぎるコンストラクターを呼び出そうとしないでください。つまり、db.foo.insert({"t" : NumberLong(1234657890132456789)});
を呼び出さないでください。 その数はdoubleには大きすぎるため、丸め誤差が発生します。上記の数値はNumberLong("1234657890132456704")
に変換されます 、明らかに間違っています。