一尘不染

如何使用Node.js在MongoDB中存储大量数字

node.js

我将MongoDB与本机节点驱动程序一起使用,需要准确存储可能大于int最大值2147483647的数字。在跟踪使用情况时,我将需要能够增加数字。我有什么选择?

我正在用猫鼬。我遇到的问题是,当我$inc过去2147483647时,它会将数字转换为双精度。如何强制Mongoose使用64位long int
NumberLong

我的架构如下所示

var schema = new Schema({
    ...
    usedBandwidth: {type: Number, min: 0, default: 0}
});

我的$inc样子是这样

model.Account.update(
    {_id: this.account},
    {$inc: {usedBandwidth: this.size}},
    function (err, doc) {}
);

阅读 243

收藏
2020-07-07

共1个答案

一尘不染

您现在可以使用该mongoose-long插件在Mongoose中执行此操作。

require('mongoose-long')(mongoose);
var SchemaTypes = mongoose.Schema.Types;
var schema = new Schema({
    ...
    usedBandwidth: {type: SchemaTypes.Long, min: 0, default: 0}
});
2020-07-07