6.MongoDB连接
6.1 知识点
MongoDB 连接字符串格式
MongoDB 的连接字符串格式为 mongodb://<用户名>:<密码>@<主机>:<端口>/<数据库>?options
。
这个格式非常灵活,允许你提供多种选项来配置连接。
用户名和密码
- **<用户名>**:连接到 MongoDB 数据库所需的用户名。
- **<密码>**:该用户的密码。为了安全考虑,密码中的特殊字符(如
@
、/
等)需要进行 URL 编码。
假设您的用户名是 user@example.com
,密码是 pa/ss:word?
,那么在连接字符串中,您需要这样处理:
- 用户名
user@example.com
中的@
需要编码为%40
- 密码
pa/ss:word?
中的/
需要编码为%2F
,:
需要编码为%3A
,?
需要编码为%3F
因此,编码后的用户名和密码分别为:
- 编码后的用户名:
user%40example.com
- 编码后的密码:
pa%2Fss%3Aword%3F
主机和端口
- **<主机>**:MongoDB 服务器的主机名或 IP 地址。可以是多个主机,用逗号分隔,用于复制集的连接。
- **<端口>**:MongoDB 服务的端口,默认是
27017
。如果使用默认端口,可以省略这个部分。
数据库
- **<数据库>**:要连接的数据库名称。如果数据库不存在,MongoDB 会在首次插入数据时自动创建它。
选项(options)
选项是连接字符串中的可选参数,允许你修改连接的行为。以下是一些常用的选项及其解释:
authSource:指定身份验证数据库。如果用户在其他数据库中创建,但连接到一个不同的数据库时,需要使用此参数。
例如,
authSource=admin
表示在admin
数据库中进行身份验证。retryWrites:指定是否启用重试写入。设置为
true
时,如果写入操作失败,驱动程序将自动重试,默认值为false
。w:指定写入操作的确认级别。可以设置为
1
(确认写入到主节点),majority
(确认写入到大多数节点),或者0
(不需要确认)。r:在执行写入操作时,指定读取的副本节点,可以与
w
一起使用。ssl:指定是否使用 SSL/TLS 加密与 MongoDB 服务器之间的连接。设置为
true
时启用 SSL。connectTimeoutMS:设置连接超时时间,单位为毫秒。默认是 30000 毫秒(30 秒)。
socketTimeoutMS:设置套接字超时时间,单位为毫秒。默认也是 30000 毫秒。
maxPoolSize:设置连接池的最大数量,默认是 100。
minPoolSize:设置连接池的最小数量,默认是 0。
连接字符串示例
不带任何验证
// 连接本地数据库
mongodb://localhost:27017/
// 连接指定IP的数据库
mongodb://127.0.0.1:27017/
带用户名和密码验证
mongodb://username:password@localhost:27017/
连接到指定的数据库
mongodb://username:password@localhost:27017/mydb
带选项参数
mongodb://username:password@localhost:27017/mydb?authSource=admin&retryWrites=true&w=majority
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com