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 对象替换它们来强制数字为双精度:

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

有没有比递归遍历整个 Javascript 对象用 mongo.Double 对象替换每个数字更好的方法来实现这一点?

4

1 回答 1

0

您不必在整个代码中用 mongo.Double 替换变量。当您创建存储在数据库中的文档时,这样做就足够了。使用对象关系映射框架也可以帮助您。

当您想将 Javascript 对象原样存储在数据库中并且没有对象的中间数据库版本时,您可以创建一个包装函数来将对象保存到 MongoDB,从而创建对象的深层副本,但是将源文档中的所有整数存储在目标文档中的 mongo.Double 中。然后将目标文档保存到数据库中。

于 2013-01-17T15:42:09.133 回答