gpt4 book ai didi

node.js - 如何使用 Nodejs mongo 驱动程序使用 NumberLong()

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:48 31 4
gpt4 key购买 nike

我需要将数据插入到我的 mongoDB 中,如下所示:

db.collection('Test').insert({
"Name" : "Some",
"UserID" : NumberLong(2147483647),
...

插入应该发生在与 mongo db 交互的 Nodejs 脚本中除了 NumberLong() 之外,一切都很好。

我收到以下错误:

ReferenceError: NumberLong is not defined
at /root/MongoPolluter/MongoPolluter.js:107:23
at connectCallback (/root/MongoPolluter/node_modules/mongodb/lib/mongo_client.js:505:5)
at /root/MongoPolluter/node_modules/mongodb/lib/mongo_client.js:443:13
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)

我尝试过的:

  • 安装后添加var BSON = require('bson');。也许我应该使用 BSONElements?
  • 阅读此内容:MongoDB differences between NumberLong and simple Integer? - 从这里我想到我只能从 mongo shell 使用 NumberLong ?不确定这是否正确。
  • 另请阅读以下内容:var Long = require('mongodb').Long; - 我应该将 NumbreLong() 替换为 Long.fromString('') 吗?有没有办法让 NumberLong() 工作?

谢谢

最佳答案

NumberLong 仅用于 mongo shell。如果你在nodejs(javascript)中使用它就没有意义了。我使用 mongoose 并且仅使用 Number 类型的数据

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

var MyNumber = mongoose.model('my_number', { long_number: Number });

var record = new MyNumber({ long_number: 1234556 });
record.save(function (err) {
if (err) {
console.log(err);
} else {
console.log('ok');
}
});

// have to defind ObjectId when use even it a default type data of mongodb
var id = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');

关于node.js - 如何使用 Nodejs mongo 驱动程序使用 NumberLong(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44633126/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com