2017-06-19 52 views
0

我需要將數據插入到我的MongoDB,像這樣的:如何使用NumberLong()用的NodeJS工作MONGO司機

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

刀片應與蒙戈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()w/Long.fromString('')?有沒有辦法讓NumberLong()工作?

感謝

+0

的唯一編號類型'Long.fromString( '')'解決方案工作。但是看看是否可以繼續使用'NumberLong()'會很有趣。 'ISOdate()'同樣的問題(需要使用'new Date()')。 –

+1

http://mongodb.github.io/node-mongodb-native/2.2/api/Long.html –

回答

2

NumberLong被使用蒙戈僅外殼。如果你在nodejs(javascript)中使用它並不意味着。 我使用貓鼬和數據

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');