2017-12-27 283 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