关于MongoDB连接字符串URI格式

连接字符串格式

你可以使用以下任一方法指定MongoDB连接字符串:

  • 标准连接字符串格式
  • DNS种子列表连接格式。

标准连接字符串格式

本节介绍用于连接MongoDB部署的MongoDB连接URI的标准格式:独立,副本集或分片集群。
标准URI连接方案具有以下形式:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]]][/[database][?options]]

对于独立MongoDB

mongodb://mongodb0.example.com:27017/admin

如果开启了访问控制:

mongodb://myDBReader:D1fficultP%[email protected]:27017/admin

如果用户名或密码包含at符号@,冒号:,斜杠/或百分号%字符,请使用百分比编码方式消除歧义

对于副本集群

mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/admin?replicaSet=myRepl

如果开启了访问控制,请包括用户凭据:

mongodb://myDBReader:D1fficultP%[email protected]:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/admin?replicaSet=myRepl

对于分片集群

URI的主要组成

标准URI连接字符串包括以下部分:

Component Description
mongodb:// 一个必需的前缀,用于标识这是一个字符串 标准连接格式。
username:password@

(可选) 验证凭据。 如果指定,客户端将在连接后尝试使用这些凭据登录到特定数据库。

如果用户名或密码包含at符号@, 分号 :, 斜杆 /, 或者百分号% , 请记得使用百分号编码消除歧义 .

host[:port] 运行mongod实例(或分片群集的mongos实例)的主机(和可选端口号)。 你可以指定主机名,IP地址或 UNIX domain socket。
根据你的部署拓扑指定任意数量的主机:
  • 对于独立的,请指定独立mongod实例的主机名。
  • 对于副本集,请指定副本集配置中列出的mongod实例的主机名。
  • 对于分片群集,请指定mongos实例的主机名。
  • 如果未指定端口号,则使用默认端口27017。
    /database (可选) 如果连接字符串包含username:password @形式的身份验证凭据,则要验证的数据库的名称。 如果未指定/database且连接字符串包含凭据,则驱动程序将对admin数据库进行身份验证。
    ? (可选) 一个查询字符串,它将特定于连接的选项指定为<\name> = <\value>对。 有关这些选项的完整说明,请参见连接字符串选项。

    如果连接字符串未指定数据库, 你必须在最后一个主机和开始选项字符串的问号(?)之间指定斜杠(/)。

    DNS种子列表连接格式

    [TO-DO]

    连接字符串选项

    连接选项是以下形式的对:name = value。 该值始终区分大小写。 带有&符号(即&)字符的单独选项。 在以下示例中,连接包括replicaSet和connectTimeoutMS选项:

    mongodb://db1.example.net:27017,db2.example.net:2500/?replicaSet=test&connectTimeoutMS=300000

    副本集选项

    以下连接字符串指向名为myRepl的副本集,其成员在指定主机上运行:

    ·mongodb://db0.example.com:27017,db1.example.com:27017,db2.example.com:27017/admin?replicaSet=myRepl

    连接选项

    • ssl
    • connectTimeoutMS
    • socketTimeoutMS
    • compressors
    • zlibCompressionLevel

    连接池选项

    • maxPoolSize
    • minPoolSize
    • maxIdleTimeMS
    • waitQueueMultiple
    • waitQueueTimeoutMS

    写入关注选项

    • w
    • journal
    • wtimeoutMS

    读取关注选项

    • readConcernLevel

    读取偏好选项

    读取首选项描述了与副本集有关的读取操作的行为。 这些参数允许你在连接字符串中基于每个连接指定读取首选项。

    • readPreference
    • maxStalenessSeconds
    • readPreferenceTags

    验证选项

    以下连接字符串到副本集指定了admin数据库的authSource。 也就是说,用户凭据已经过admin数据库的身份验证。

    mongodb://myDBReader:D1fficultP%[email protected]:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/test?replicaSet=myRepl&authSource=admin

    • authSource
    • authMechanism
    • authMechanismProperties
    • gssapiServiceName

    服务器选择和发现选项

    其他配置

    • appName
    • retryWrites
    • uuidRepresentation

    一些例子

    [TO-DO]

    你可能感兴趣的:(MongoDB,MongoDB学习随笔)