推荐答案
MongoDB 的连接字符串(Connection String)是一个用于连接到 MongoDB 实例的 URI 格式字符串。它包含了连接 MongoDB 所需的所有信息,如主机地址、端口号、认证信息、数据库名称等。
一个典型的 MongoDB 连接字符串格式如下:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
示例
连接到本地 MongoDB 实例的默认端口(27017):
mongodb://localhost:27017
连接到远程 MongoDB 实例,并指定用户名和密码:
mongodb://myUser:myPassword@example.com:27017
连接到副本集,并指定多个主机:
mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myReplicaSet
连接到指定数据库,并启用 SSL:
mongodb://myUser:myPassword@example.com:27017/mydatabase?ssl=true
本题详细解读
连接字符串的组成部分
协议:
mongodb://
是 MongoDB 连接字符串的标准协议前缀。认证信息:
username:password@
是可选的,用于指定连接 MongoDB 所需的用户名和密码。如果 MongoDB 实例启用了认证,则必须提供这些信息。主机和端口:
host1:port1
是 MongoDB 实例的主机地址和端口号。可以指定多个主机和端口,用于连接副本集或分片集群。数据库名称:
/database
是可选的,用于指定连接的默认数据库。如果未指定,则默认连接到admin
数据库。选项:
?options
是可选的,用于指定连接时的额外选项,如ssl=true
、replicaSet=myReplicaSet
等。
常见选项
- replicaSet:指定副本集的名称。
- ssl:启用 SSL 加密连接。
- authSource:指定认证数据库,默认为
admin
。 - connectTimeoutMS:连接超时时间(毫秒)。
- socketTimeoutMS:套接字超时时间(毫秒)。
注意事项
- 如果连接字符串中包含特殊字符(如
@
、:
、/
等),需要进行 URL 编码。 - 在连接副本集时,建议指定多个主机地址,以提高连接的可靠性。
- 使用 SSL 连接时,确保 MongoDB 实例已正确配置 SSL 证书。