6.MongoDB连接

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

×

喜欢就点赞,疼爱就打赏