MongoDB/Express - 通过connect()连接后如何切换数据库

use*_*960 3 javascript mongodb express

我使用express连接到我的mongoDB:

mongodb.MongoClient.connect(mongourl, function(err, database) {

      // How would one switch to another database here?

});
Run Code Online (Sandbox Code Playgroud)

我必须首先连接到管理数据库.建立连接后,我想切换数据库.

虽然我搜索了官方文档,但我无法找到符合我需求的东西.

我知道这个MongoClient::open()方法,但我想坚持connect().

任何帮助表示赞赏.

rob*_*lep 10

您可以切换到另一个数据库,如下所示:

mongodb.MongoClient.connect(mongourl, function(err, database) {
  // switch to another database
  database = database.db(DATABASE_NAME);
  ...
});
Run Code Online (Sandbox Code Playgroud)

(docs)

编辑:澄清:这也允许您通过同一连接打开多个数据库:

mongodb.MongoClient.connect(mongourl, function(err, database) {
  // open another database over the same connection
  var database2 = database.db(DATABASE_NAME);

  // now you can use both `database` and `database2`
  ...
});
Run Code Online (Sandbox Code Playgroud)


hei*_*nob 1

您只需MongoClient.connect再次调用一次,因为每个数据库只有一个连接。这意味着,您无法更改现有连接的数据库。您必须第二次连接:

mongodb.MongoClient.connect(mongourl, function(err, database) {
    mongodb.MongoClient.connect(mongourl_to_other_database, function(err, database2) {
        // use database or database2
    });
});
Run Code Online (Sandbox Code Playgroud)