1

任意の Javascript オブジェクトを MongoDB ドキュメントに保存したいのですが、データベースですべての数値を Double 型にしたいです。配列またはオブジェクトではないすべてのフィールドは、文字列または数値になります。

例えば:

{ "things": [ 1.0, 1.1, [ { "item": 6 }, 5.5, "test" ] ],
  "other things": { "thing": 2.0, "other thing" : [ 4.4, 5.0 ] },
  "another thing": 6.0 }
}

nodejs-mongodb-native ドライバーは、可能な数値 (5.0 など) を Int32 として保存します。

数値を Double オブジェクトに置き換えることで、数値を強制的に double にすることができます。

var mongo = require('mongodb');
new mongo.Double(number);

各数値を mongo.Double オブジェクトに置き換える Javascript オブジェクト全体を再帰的にウォークスルーするよりも、これを達成するためのより良い方法はありますか?

4

1 に答える 1

0

コード全体で変数を mongo.Double に置き換える必要はありません。データベースに保存するドキュメントを作成するときは、これで十分です。オブジェクト・リレーショナル・マッピング・フレームワークを使用することも、これに役立ちます。

Javascript オブジェクトをデータベースにそのまま保存し、オブジェクトの中間データベース バージョンを持たない場合、オブジェクトのディープ コピーを作成する MongoDB にオブジェクトを保存するラッパー関数を作成できますが、ソース ドキュメントのすべての整数を mongo.Double のターゲット ドキュメントに格納します。次に、ターゲット ドキュメントがデータベースに保存されます。

于 2013-01-17T15:42:09.133 に答える