mongodb or mongodb+srv

在使用MongoDB数据库时,主要有两种连接方式:mongodb和mongodb+srv。这两种连接方式在连接到MongoDB集群时有一些区别,本文将详细介绍这两种连接方式的使用及区别。
MongoDB连接方式
mongodb
在使用mongodb连接方式时,我们需要指定MongoDB数据库的地址和端口号。示例代码如下:
const mongoose = require('mongoose');
// MongoDB连接地址
const mongoDBUrl = 'mongodb://localhost:27017/myDatabase';
// 连接MongoDB数据库
mongoose.connect(mongoDBUrl, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('MongoDB connected successfully');
})
.catch((err) => {
console.error('MongoDB connection error:', err);
});
在上面的示例中,我们使用mongoose库连接到名为myDatabase的MongoDB数据库,数据库地址为mongodb://localhost:27017。需要注意的是,在实际使用中需要根据自己的环境修改数据库地址和端口号。
mongodb+srv
在使用mongodb+srv连接方式时,我们可以直接连接到MongoDB Atlas等云数据库服务商提供的集群。示例代码如下:
const mongoose = require('mongoose');
// MongoDB Atlas连接地址
const mongoDBAtlasUrl = 'mongodb+srv://<username>:<password>@cluster0.abcdef.mongodb.net/myDatabase';
// 连接MongoDB Atlas数据库
mongoose.connect(mongoDBAtlasUrl, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('MongoDB Atlas connected successfully');
})
.catch((err) => {
console.error('MongoDB Atlas connection error:', err);
});
在上面的示例中,我们使用mongoose库连接到MongoDB Atlas提供的名为myDatabase的MongoDB数据库。需要注意的是,在实际使用中需要修改<username>和<password>为MongoDB Atlas账号的用户名和密码。
区别
- 连接地址格式:
mongodb连接方式只需要指定数据库的地址和端口号,格式为mongodb://<host>:<port>/<database>;而mongodb+srv连接方式需要指定MongoDB Atlas提供的连接地址,格式为mongodb+srv://<username>:<password>@<cluster>/<database>。 -
适用场景:
mongodb连接方式适用于本地服务器上部署的MongoDB数据库;而mongodb+srv连接方式适用于连接到MongoDB Atlas等云数据库服务商提供的集群。 -
安全性:使用
mongodb+srv连接方式可以实现更高级别的安全性,因为连接地址中包含了用户名和密码,避免了明文存储在代码中的风险。
总结
在选择连接方式时,如果是本地服务器上部署的MongoDB数据库,可以使用mongodb连接方式;如果是连接到MongoDB Atlas等云数据库服务商提供的集群,建议使用mongodb+srv连接方式以提高安全性。无论使用哪种连接方式,都需要确保数据库地址和端口号的正确性,以保证连接成功。
极客教程