在MongoDB文档中强制Javascript数字翻倍

Forcing Javascript numbers to Double in MongoDB document?

本文关键字:Javascript 数字 MongoDB 文档      更新时间:2023-09-26

我想将任意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);

还有比递归遍历整个Javascript对象更好的方法吗用mongo替换每个数字。双对象?

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

当你想要存储你的Javascript对象,因为他们是在数据库中,没有一个中间的数据库版本的对象,你可以创建一个包装器函数来保存对象到MongoDB,创建一个深度拷贝的对象,但存储所有的整数在mongo源文档。目标文档中有两个。然后将目标文档保存到数据库。