2017-12-27 306 views
0

我在用MongoDB學習node.js。我已經從mongodb.org/downloads安裝了完整的包。無法創建集合?

我做了一個Node.js的文件是這樣的:

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

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

在控制檯它表明我,數據庫中創建,但是當我打開蒙戈指南針和刷新我沒有看到所謂的任何數據庫myDatabase

於是,我就接下來的事情就是創建一個集合:

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

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(); 
    }); 
}); 

然後我得到這些錯誤:

Error: Invalid schema, expected `mongodb` or `mongodb+srv` 
    at module.exports (D:\Node.js Projects\Node.js MongoDB\node_modules\mongodb\lib\url_parser.js:15:21) 
    at connect (D:\Node.js Projects\Node.js MongoDB\node_modules\mongodb\lib\mongo_client.js:867:3) 
    at connectOp (D:\Node.js Projects\Node.js MongoDB\node_modules\mongodb\lib\mongo_client.js:253:3) 
    at executeOperation (D:\Node.js Projects\Node.js MongoDB\node_modules\mongodb\lib\utils.js:408:22) 
    at MongoClient.connect (D:\Node.js Projects\Node.js MongoDB\node_modules\mongodb\lib\mongo_client.js:244:10) 
    at Function.MongoClient.connect (D:\Node.js Projects\Node.js MongoDB\node_modules\mongodb\lib\mongo_client.js:472:22) 
    at Object.<anonymous> (D:\Node.js Projects\Node.js MongoDB\CreateCollection\createcollection.js:4:13) 
    at Module._compile (module.js:635:30) 
    at Object.Module._extensions..js (module.js:646:10) 
    at Module.load (module.js:554:32) 

任何人都可以請幫我,爲什麼我沒有看到MYDATABASE在MongoDB Compass UI中,以及爲什麼當以前的代碼表示創建數據庫時無法創建集合?

回答

0

連接URL應該首先「的mongodb://」


看來你使用MongoDB的庫的新版本不教程匹配你以下

var MongoClient = require("mongodb").MongoClient; 
var url = "mongodb://localhost:27017"; 
var dbName = "myDatabase"; 

MongoClient.connect(url, function(err, client) { 
    if (err) throw err; 

    var db = client.db(dbName); 
    var collection = db.collection("customers"); 

    // you are using the collection but it won't be created until you insert a 
    // document or create an index 

    collection.find({}).toArray((err, docs) => { 
    if (err) throw err; 

    console.log(docs); 

    client.close(); 
    }); 
}); 

這是更好地去符合您的庫版本official documentation

+0

我改成了什麼ü說得到幫助,但仍然得到錯誤:類型錯誤:db.createCollection不是函數 – Mudasar

+0

URL中的數據庫名稱在第二個片段「myDatabase」與「mydb」中不同 – lleon

+0

仍然相同錯誤 – Mudasar