Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Node.js在MongoDB中存储大量数据_Node.js_Mongodb_Mongoose - Fatal编程技术网

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

如何使用Node.js在MongoDB中存储大量数据,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我将MongoDB与本机节点驱动程序一起使用,需要准确地存储可能大于int最大值2147483647的数字。我需要能够在跟踪使用情况时增加该数字。我有什么选择 我在用猫鼬。我遇到的问题是,当我$inc超过2147483647时,它会将数字转换为双精度。如何强制Mongoose使用64位长的intNumberLong 我的模式如下所示 var schema = new Schema({ ... usedBandwidth: {type: Number, min: 0, defaul

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

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

我的模式如下所示

var schema = new Schema({
    ...
    usedBandwidth: {type: Number, min: 0, default: 0}
});
model.Account.update(
    {_id: this.account},
    {$inc: {usedBandwidth: this.size}},
    function (err, doc) {}
);
我的
$inc
是这样的

var schema = new Schema({
    ...
    usedBandwidth: {type: Number, min: 0, default: 0}
});
model.Account.update(
    {_id: this.account},
    {$inc: {usedBandwidth: this.size}},
    function (err, doc) {}
);

MongoDB有一个本机的64位长整数类型,通常称为
NumberLong
(至少在MongoDB javascript外壳/驱动程序中是这样)。如果您使用的是node mongodb本机驱动程序,我相信它只是名为
Long
(虽然我不确定这一点,但如果我错了,请有人纠正我)
$inc
NumberLong

类型的字段按预期工作,现在您可以使用插件在Mongoose中执行此操作


我刚刚添加了一些更多的信息,代码$inc对于等于或大于2^31的增量值,在Mongoose(注意:不是Mongoo,而是Mongoose)上的效果与预期不一样。然后,它们突然被转换为double。当您使用es6时,如何使用此插件?