在mongodb`connect`中使用数据库

时间:2018-07-23 10:30:06

标签: node.js mongodb

我可以使用以下方式连接到mongodb:

const client = await MongoClient.connect('mongodb://user:pass@host/mydb', {
    useNewUrlParser: true
})

然后,为了执行查询,我必须使用db对象。我可以通过以下方式获取它:

const db = await client.db('mydb')

这似乎是多余的,因为我必须给数据库名称两次。我可以避免第二步吗? (假设我无法更改提供给connect函数的URL)

2 个答案:

答案 0 :(得分:2)

您可以不带任何参数使用db()。在这种情况下,将使用您的连接字符串中的名称。

  

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

BundleResource

答案 1 :(得分:0)

您不能更改分配给connect函数的URL,但是您可以通过解析URL并获取名称(例如,

)来绝对地提取数据库名称。

const url = require('url')
const { MongoClient } = require('mongodb')

const mongodbServerUrl = 'mongodb://user:pass@host/mydb'
const mongoPathName = url.parse(mongodbServerUrl).pathname
const dbName = mongoPathName.substring(mongoPathName.lastIndexOf('/') + 1)

const client = await MongoClient.connect(mongodbServerUrl, {
    useNewUrlParser: true
})

const db = await client.db(dbName)