如何使用MongoDB Node.JS驱动程序创建新数据库?

11

如何使用MongoDB Node.JS驱动程序以编程方式创建数据库?

这看起来很有前途,但我不确定如何使用管理员凭据连接并创建新数据库。

var db = new Db('test', new Server('locahost', 27017));
  // Establish connection to db
  db.open(function(err, db) {
    assert.equal(null, err);

    // Add a user to the database
    db.addUser('user3', 'name', function(err, result) {
      assert.equal(null, err);

      // Authenticate
      db.authenticate('user3', 'name', function(err, result) {
        assert.equal(true, result);

        // Logout the db
        db.logout(function(err, result) {
          assert.equal(true, result);

          // Remove the user
          db.removeUser('user3', function(err, result) {
            assert.equal(true, result);

            db.close();
          });
        });
      });
    });
  });

1
你是在说你尝试过这个但它没起作用,还是你只是把它复制粘贴到这里?我强烈建议你至少尝试一下,然后在这里发帖提出具体问题。 - John Petrone
3个回答

6

MongoDB数据库和集合是在第一次访问时创建的。当新用户第一次连接并触及他们的数据时,他们的数据库将被创建。


3

这似乎有效。

var Db = require('mongodb').Db, 
Server = require('mongodb').Server;

var db = new Db('test', new Server('localhost', 27017));
db.open(function (err, db) {
  if (err) throw err;

  // Use the admin database for the operation
  var adminDb = db.admin();

  adminDb.authenticate('adminLogin', 'adminPwd', function (err, result) {
    db.addUser('userLogin', 'userPwd', function (err, result) {
      console.log(err, result);
    });
  });
});

1
你能解释一下以下两者之间的区别吗?var db = new Db('test', new Server('localhost', 27017));和mongoClient.connect(connString, function(err, db) .... - NIKHIL C M

2
请尝试以下操作:
var adminuser = "admin";
var adminpass = "admin";
var server = "localhost";
var port   = 27017; 
var dbName = "mydatabase";
var mongodb          = require('mongodb');
var mongoClient = mongodb.MongoClient;

var connString = "mongodb://"+adminuser+":"+adminpass+"@"+server+":"+port+"/"+dbName;
    mongoClient.connect(connString, function(err, db) {
        if(!err) {
            console.log("\nMongo DB connected\n");                
        }
        else{
            console.log("Mongo DB could not be connected");
            process.exit(0);
        }
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接