db.num.insert(n); > n"> db.num.insert(n); > n"> db.num.insert(n); > n" />

JavaScriptシェルを使ってMongoDBに8バイトの整数を挿入するには?

「MongoDB - 最終ガイド」に従って

  • MongoDBは4バイトの整数、8バイトの整数、8バイトの浮動小数点型を持っていますが、JavaScriptは浮動小数点型しか持っていません。
  • デフォルトでは、すべての数値はdoubleとして扱われます

整数を挿入しようとすると、次のようになります:

> n = {"myInteger" : 3 };    
{ "myInteger" : 3 }    
> db.num.insert(n);
> n = db.num.find();    
{ "_id" : ObjectId("4eeee1e5b593471ba5461577"), "myInteger" : 3 }

上記に基づいて、私は以下の質問をしています:

  • JavaScriptを使用してMongoDBに8バイトの整数を挿入するにはどうすればいいですか?
  • 上に表示されたmyInteger値の型をJavaScriptで確認するにはどうすればよいですか?
  • MongoDBに格納されているmyInteger値の型をチェックするにはどうすればいいですか?
3

1 答え

JavaScriptを使用してMongoDBに8バイト整数を挿入するにはどうすればよいですか?

あなたは使うことができます

n = {"myLong" :  new NumberLong("123212313")};
5
追加された
それが難しいように思われるので、あなたの他の質問に+1してください。 instanceof NumberLong を実行することはできますが、これは4バイトの数字では機能しません。どちらもJSの "数字"です。
追加された 著者 Thilo,
Thilo:MongoDBから値を取得すると、そのデータは{"myInteger":{"floatApprox:3}"に対して{"myInteger":NumberLong(3)}として表示されます。 MongoDBに8バイトの整数を格納する方法は?
追加された 著者 Ken Russell,
[mongodb.orgより]バージョン1.6より前では、シェルは{"floatApprox":3}を表示しますが、1.6からはシェルはNumberLong(3)を表示します。
追加された 著者 Ken Russell,