MongoDb,如何在URI中指定其名称时从Client对象获取数据库?

时间:2018-02-06 16:43:38

标签: node.js mongodb

当我启动Express应用时,我会在Environmental Variables中定义所有必需参数。

根据代码here

const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');

// Connection URL
const url = 'mongodb://localhost:27017';

// Database Name
const dbName = 'myproject';

// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
  assert.equal(null, err);
  console.log("Connected successfully to server");

  const db = client.db(dbName);

  client.close();
});

获取我需要的数据库对象:

  1. 初始化应用程序时传递数据库名称。还有一个environment variable,不喜欢它。
  2. 解析 URI这样的对象:mongodb://localhost:27017/myproject以提取数据库名称。还有一行代码,也不喜欢它。
  3. 还有其他第三种解决方案吗?当我尝试调试client对象时,如果连接成功则返回该对象我已经看到它已经包含连接到的数据库的名称,请参阅下面的截图,但我还没有找到任何{ {3}}如何使用它。使用我不喜欢的“hacky”方式。

    official API

1 个答案:

答案 0 :(得分:0)

现在只需不将任何变量传递给client.db()即可完成此操作。

文档说明:

我们要使用的数据库的名称。如果未提供,请使用数据库 连接字符串中的名称。

http://mongodb.github.io/node-mongodb-native/3.6/api/MongoClient.html#db