我可以使用以下方式连接到mongodb:
const client = await MongoClient.connect('mongodb://user:pass@host/mydb', {
useNewUrlParser: true
})
然后,为了执行查询,我必须使用db
对象。我可以通过以下方式获取它:
const db = await client.db('mydb')
这似乎是多余的,因为我必须给数据库名称两次。我可以避免第二步吗? (假设我无法更改提供给connect函数的URL)
答案 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)