本文档介绍了URI格式,用于在官方MongoDB 驱动程序中定义应用程序和MongoDB实例之间的连接 。有关驱动程序的列表和驱动程序文档的链接,请参阅drivers。
您可以使用以下任一方式指定MongoDB连接字符串:
本部分描述用于连接到MongoDB部署的MongoDB连接URI的标准格式:独立,副本集或分片群集。
标准URI连接方案具有以下形式:
标准URI连接字符串包括以下组件:
零件 | 描述 |
---|---|
mongodb:// |
必需的前缀,用于标识这是标准连接格式的字符串。 |
username:password@ |
可选的。身份验证凭据。 如果指定,则客户端将尝试向验证用户 如果用户名或密码包含at符号 另请参阅 |
host[:port] |
如果未指定端口号, |
/defaultauthdb |
可选的。如果连接字符串包含 如果 |
?<options> |
可选的。查询字符串,将连接特定的选项指定为 如果连接字符串未指定数据库/,则必须 |
3.6版的新功能。
除标准连接格式外,MongoDB还支持 DNS构造的种子列表。使用DNS构造可用的服务器列表,可以提供更大的部署灵活性,并可以轮流更改服务器而无需重新配置客户端。
为了利用DNS种子列表,请使用连接字符串前缀
mongodb+srv:
而不是standard mongodb:
。该+srv
指示的客户端遵循对应于DNS SRV记录的主机名。然后,驱动程序或mongo
外壳程序将查询DNS以获取记录,以确定哪些主机正在运行
mongod
实例。
注意
使用+srv
连接字符串修饰符会自动将tls
(或等效
ssl
)选项设置true
为连接。您可以通过将查询字符串中的tls
(或等效ssl
)选项显式设置为false
with
tls=false
(或ssl=false
)来覆盖此行为。
以下示例显示了DNS种子列表连接字符串的典型连接字符串:
相应的DNS配置可能类似于:
重要
SRV记录中返回的主机名必须example.com
与给定的主机名共享相同的父域(在本示例中为)。如果父域和主机名不匹配,则将无法连接。
与标准连接字符串一样,DNS种子列表连接字符串支持将选项指定为查询字符串。随着DNS的seedlist连接字符串,可以还指定通过TXT记录下列选项:
replicaSet
authSource
每个mongod
实例只能指定一个TXT记录。如果DNS中出现多个TXT记录和/或TXT记录包含除replicaSet
或以外的选项authSource
,则客户端将返回错误。
server.example.com
DNS条目的TXT记录类似于:
两者合计,DNS SRV记录和TXT记录中指定的选项解析为以下标准格式的连接字符串:
您可以通过在查询字符串中传递选项来覆盖TXT记录中指定的选项。在下面的示例中,查询字符串提供了authSource
上面DNS条目的TXT记录中配置的选项的替代。
给定重写,authSource
标准格式的等效连接字符串为:
注意
mongodb+srv
如果没有可用的DNS记录与连接字符串中标识的主机名相对应,则该选项将失败。此外,使用+srv
连接字符串修饰符会自动为连接设置tls
(或等效
ssl
)选项true
。您可以通过将查询字符串中的tls
(或等效ssl
)选项显式设置为false
with
tls=false
(或ssl=false
)来覆盖此行为。
看到
使用DNS种子列表连接格式连接到副本集提供了一个使用DNS种子列表连接格式将mongo
外壳连接到副本集的示例。
本节列出了所有连接选项。
连接选项是成对的,格式如下:name=value
。
name
使用驱动程序时,该选项不区分大小写。name
使用4.2+版本的mongo
Shell 时,此选项不区分大小写
。name
使用4.0版或更早版本的mongo
Shell 时,此选项区分大小写。value
始终是区分大小写的。独立选项与符号(即&
)字符
name1=value1&name2=value2
。在以下示例中,连接包括replicaSet
和
connectTimeoutMS
选项:
连接字符串参数的分号分隔符
为了提供向后兼容性,驱动程序当前接受分号(即;
)作为选项分隔符。
以下连接字符串到一个副本集,该副本集myRepl
使用在指定主机上运行的成员命名:
连接选项 | 描述 |
---|---|
|
连接到副本集时,请将副本集成员的种子列表提供给 |
副本集的以下连接字符串包括
tls=true
选项(从MongoDB 4.2开始可用):
另外,您也可以使用等效ssl=true
选项:
连接选项 | 描述 |
---|---|
|
为连接启用或禁用TLS / SSL:
如果 4.2版中的新功能。 |
|
用于为连接启用或禁用TLS / SSL的布尔值:
|
|
指定 并非所有驱动程序都支持此选项。请参阅 驱动程序文档。 此连接字符串选项不可用的 4.2版中的新功能。 |
|
指定用于解密的密码
并非所有驱动程序都支持此选项。请参阅 驱动程序文档。 此连接字符串选项不可用的 4.2版中的新功能。 |
|
指定 并非所有驱动程序都支持此选项。请参阅 驱动程序文档。 此连接字符串选项不可用的 4.2版中的新功能。 |
|
设置为 并非所有驱动程序都支持此选项。请参阅 驱动程序文档。 此连接字符串选项不可用的 警告 禁用证书验证会产生漏洞。 4.2版中的新功能。 |
|
禁用 设置为 并非所有驱动程序都支持此选项。请参阅 驱动程序文档。 此连接字符串选项不可用的 警告 禁用证书验证会产生漏洞。 4.2版中的新功能。 |
|
禁用各种证书验证。 设置为 此连接字符串选项不可用的 警告 禁用证书验证会产生漏洞。 4.2版中的新功能。 |
连接选项 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
逗号分隔的压缩字符串,用于启用网络压缩以在此客户端和 您可以指定以下压缩器: 如果指定多个压缩器,则列出压缩器的顺序以及通信启动器都很重要。例如,如果客户机指定了以下网络压缩机 重要 当双方都启用网络压缩时,消息将被压缩。否则,双方之间的消息将不被压缩。 如果各方不共享至少一个公共压缩器,则各方之间的消息将不被压缩。 从MongoDB 4.0.5(和MongoDB 3.6.10)开始,
|
||||||||
|
一个整数,如果将zlib用于则指定压缩级别
。 您可以指定一个介于
|
大多数驱动程序实现某种连接池处理。某些驱动程序不支持连接池。有关连接池实现的更多信息,请参见驱动程序文档。这些选项允许应用程序在连接到MongoDB部署时配置连接池。
连接选项 | 描述 |
---|---|
|
连接池中的最大连接数。默认值为100 。 |
|
连接池中的最小连接数。默认值为 注意
|
|
在删除和关闭连接之前,连接在池中可以保持空闲状态的最大毫秒数。 并非所有驱动程序都支持此选项。 |
|
驱动程序将 并非所有驱动程序都支持此选项。 |
|
线程可以等待连接可用的最长时间(以毫秒为单位)。有关默认值,请参见 / drivers文档。 并非所有驱动程序都支持此选项。 |
写关注描述了MongoDB请求的确认级别。下列情况支持写关注选项:
mongo
贝壳mongofiles
mongoimport
mongorestore
您可以在连接字符串中指定写关注点,也可以将其指定为诸如insert
或方法的参数update
。如果在两个地方都指定了写关注点,则method参数将覆盖连接字符串设置。
到副本集的以下连接字符串"majority"
使用wtimeoutMS
write担忧参数指定了
写入关注和5秒钟的超时:
连接选项 | 描述 |
---|---|
|
对应于写选项w Option。该 您可以指定 有关详细信息,请参见w选项。 |
|
对应于写担忧wtimeout。
如果 |
|
对应于写关注点j Option选项。该
|