2017-06-19 11 views
0

をモンゴ私はそのようなように、私のMongoDBにデータを挿入する必要があります。)は、ドライバ

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

挿入は、すべてが順調であるのmongoデシベル と相互作用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? - そこから、私はNumberLongをmongoの殻からしか使えないという考えを出していますか?それが正しいかどうかはわかりません。
  • これについても読んでください:var Long = require('mongodb').Long; - 私は単にNumbreLong()w/Long.fromString( '')を置き換える必要がありますか? NumberLong()を動作させる方法はありませんか?

NumberLongのみのmongoシェルに使用している

+0

'Long.fromString( '')を使用し'ソリューションを働きました。しかし、 'NumberLong()'をまだ使用できるかどうかを調べることは面白いでしょう。 'ISOdate()'と同じ問題( 'new Date()'を使う必要があります)。 –

+1

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

答えて

2

感謝。 nodejs(javascript)で使用している場合、それは意味しません。 私はマングースやデータの唯一の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');