2017-12-05 39 views
6

मैं एक मोंगो उदाहरण बनाने का प्रयास कर रहा हूं हालांकि मैं mongodb nodejs ड्राइवर से किसी भी सहायक विधियों तक पहुंचने में असमर्थ हूं।db.createCollection कोई फ़ंक्शन नहीं है

मेरा मोंगो उदाहरण डॉकर के भीतर चल रहा है और बंदरगाहों को मेरे स्थानीय में खोला गया है।

TypeError: db.createCollection is not a function 
at /var/www/html/beacon/index.js:6:8 
at args.push (/var/www/html/beacon/node_modules/mongodb/lib/utils.js:431:72) 
at /var/www/html/beacon/node_modules/mongodb/lib/mongo_client.js:254:5 
at connectCallback (/var/www/html/beacon/node_modules/mongodb/lib/mongo_client.js:933:5) 
at /var/www/html/beacon/node_modules/mongodb/lib/mongo_client.js:794:11 
at _combinedTickCallback (internal/process/next_tick.js:73:7) 
at process._tickCallback (internal/process/next_tick.js:104:9) 

w3schools से कॉपी किया गया ...

var MongoClient = require('mongodb').MongoClient; 
var url = "mongodb://localhost:27017/mydb"; 

MongoClient.connect(url, function(err, db) { 
    if (err) throw err; 
    db.createCollection("customers", function(err, res) { 
     if (err) throw err; 
     console.log("Collection created!"); 
     db.close(); 
    }); 
}); 

कोई त्रुटि रन के माध्यम से दिया जाता है, और कोई तरीकों डाटाबेस वस्तु पर संपर्क में हैं।

किसी भी विचार?

+0

आप a'console.dir (डाटाबेस) रख सकते हैं 'लाइन 6 में, (' db.createCollection' से पहले) और यहाँ परिणाम दिखाते हैं? – Elad

+0

[मोंगोडीबी नोडजेएस त्रुटि] का संभावित डुप्लिकेट (https://stackoverflow.com/questions/47662220/mongodb-nodejs-error) – njLT

उत्तर

16

changelog के अनुसार MongoDB 3.0 के लिए अब आप एक ग्राहक के बजाय डेटाबेस ऑब्जेक्ट वाला वस्तु मिलती है:

तो तुम db उद्देश्य यह है कि डेटाबेस आप का उपयोग करने के अपने मामले mydb में, चाहते हैं के लिए अंक की जरूरत है। इसे आज़माएं:

var url = "mongodb://localhost:27017/"; 
MongoClient.connect(url, function(err, db) { //here db is the client obj 
    if (err) throw err; 
    var dbase = db.db("mydb"); //here 
    dbase.createCollection("customers", function(err, res) { 
     if (err) throw err; 
     console.log("Collection created!"); 
     db.close(); //close method has also been moved to client obj 
    }); 
}); 
+0

समय की अनुमति देता है जब सही उत्तर के रूप में चिह्नित किया जाएगा। डीबी यूआरएल पथ के साथ मेरी राय में अजीब हालांकि धन्यवाद :) –

2

आप इस मुद्दे का सामना नहीं कर रहे हैं। ऐसा लगता है कि 3.0 मोंगो ड्राइवर में एक बग है या ये पीछे की संगतता परिवर्तनों को तोड़ रहे हैं। यहाँ एक नज़र डालें: db.collection is not a function when using MongoClient v3.0

URL में डीबी नाम का उपयोग करने के लिए आपको MongoDB की स्थापना रद्द करें, निर्भरता में "mongodb": "^2.2.33" को बदल सकते हैं और नया संस्करण स्थापित करने के लिए npm install करने की ज़रूरत है।

या आप कमांड के साथ विशेष संस्करण स्थापित कर सकते हैं npm install [email protected] --save

+0

सुनिश्चित नहीं है कि आप वास्तव में सवाल का जवाब दे रहे हैं – efekctive

संबंधित मुद्दे