isMaster

在本页面

Definition

如果实例是副本集的成员,则isMaster返回副本集配置和状态的子集,包括实例是否为副本集的primary

当发送到不是副本集成员的mongod实例时,isMaster返回此信息的子集。

MongoDB driversclients使用isMaster确定副本集成员的状态并发现replica set的其他成员。

mongo Shell 中的db.isMaster()方法提供了isMaster的包装。

该命令采用以下形式:

{ isMaster: 1 }

Output

All Instances

以下isMaster字段在所有角色中都是公用的:

  • isMaster. ismaster
    • 一个布尔值,报告该节点何时可写。如果是true,那么此实例是replica set中的primary,或者是主从配置中的master,或者是mongos实例,或者是独立的mongod

如果实例是副本集的secondary成员或成员是副本集的arbiter,则此字段为false

  • isMaster. maxBsonObjectSize

    • mongod进程允许的BSON对象的最大大小(以字节为单位)。如果未提供,则 Client 端应假定最大大小为“ 16 * 1024 * 1024”。
  • isMaster. maxMessageSizeBytes

    • BSON有线协议消息的最大允许大小。默认值为48000000个字节。
  • isMaster. maxWriteBatchSize

    • 写批处理中允许的最大写操作数。如果批处理超出此limit,则 Client 端驱动程序会将批处理分为较小的组,每个组的计数小于或等于此字段的值。

此限制的值为100,000次写入。

在版本 3.6 中进行了更改:写入次数从1,000增加到100,000。此限制也适用于旧版OP_INSERT消息。

  • isMaster. localTime

    • 以 UTC 返回本地服务器时间。此值为ISO date
  • isMaster. logicalSessionTimeoutMinutes

    • 3.6 版的新功能。

session最近一次使用后保持活动状态的时间(以分钟为单位)。尚未从 Client 端接收新的读/写操作或在此阈值内用refreshSessions刷新的会话将从缓存中清除。服务器可以随时清除与过期会话相关的状态。

仅在featureCompatibilityVersion"3.6"时可用。参见向后不兼容的功能

  • isMaster. minWireVersion
    • 2.6 版的新功能。

mongodmongos实例可用于与 Client 端通信的有线协议的最早版本。

Client 端可以使用minWireVersion帮助协商与 MongoDB 的兼容性。

  • isMaster. maxWireVersion
    • 2.6 版的新功能。

mongodmongos实例可用于与 Client 端通信的最新版本的有线协议。

Client 端可以使用maxWireVersion帮助协商与 MongoDB 的兼容性。

  • isMaster. readOnly
    • 3.4 版的新功能。

一个布尔值,当true时,指示mongodmongos以只读模式运行。

  • isMaster. compression
    • 3.4 版的新功能。

一个数组,列出了用于压缩 Client 端和mongodmongos实例之间的通信的压缩算法(即 Client 端和mongodmongos实例共有)。

仅当使用压缩时,此字段才可用。例如:

  • 如果启用了mongod以使用snappy,zlib压缩器,并且 Client 端指定了zlib,则compression字段将包含:
"compression": [ "zlib" ]
  • 如果启用了mongod以使用snappy,zlib压缩器,并且 Client 端指定了zlib,snappy,则compression字段将包含:
"compression": [ "zlib", "snappy" ]
  • 如果启用了mongod以使用snappy压缩器,并且 Client 端指定了zlib,snappy,则compression字段将包含:
"compression": [ "snappy" ]
  • 如果启用了mongod以使用snappy压缩器,并且 Client 端指定了zlib或 Client 端未指定压缩器,则将省略该字段。

即,如果 Client 端未指定压缩,或者 Client 端指定未为连接的mongodmongos实例启用压缩器,则该字段不会返回。

Sharded Instances

mongos个实例将以下字段添加到isMaster响应文档中:

  • isMaster. msg

Replica Sets

副本集的成员返回isMaster时,包含以下字段:

  • isMaster. setName

    • 当前:replica 集的名称。
  • isMaster. setVersion

    • 2.6 版的新功能。

当前副本集的配置版本。

驱动程序使用此数组和isMaster.passives确定要读取的成员。

仅当至少有一个成员的members[n].priority0时,才会显示此字段。

驱动程序使用此数组和isMaster.hosts确定要读取的成员。

  • isMaster. arbiters

仅当副本集中至少有一个仲裁器时,才会显示此字段。

  • isMaster. primary

    • "[hostname]:[port]"格式的字符串,列出副本集的当前primary成员。
  • isMaster. arbiterOnly

    • 一个布尔值,当true时,指示当前实例是arbiter。如果实例是仲裁者,则仅提供arbiterOnly字段。
  • isMaster. passive

  • isMaster. hidden

    • 一个布尔值,当true时,指示当前实例为hiddenhidden字段仅适用于隐藏成员。
  • isMaster. tags

    • tags文档包含用户定义的标记字段和副本集成员的值对。
{ "<tag1>": "<string1>", "<tag2>": "<string2>",... }

有关更多信息,请参见配置副本集标记集

  • isMaster. me

    • 返回isMaster的成员的[hostname]:[port]
  • isMaster. electionId

    • 3.0 版中的新功能。

每次选举的唯一标识符。仅包含在primaryisMaster输出中。Client 用来确定何时进行选举。

  • isMaster. lastWrite
    • 3.4 版的新功能。

包含optime和日期信息的文档,用于数据库的最新写入操作。

  • isMaster.lastWrite. opTime

    • 提供上一次写入操作的optime的对象。
  • isMaster.lastWrite. lastWriteDate

    • date对象,包含上一次写入操作的时间。
  • isMaster.lastWrite. majorityOpTime

    • 给出majority可读的最后写入操作的optime的对象读取。
  • isMaster.lastWrite. majorityWriteDate

    • date对象包含majority读取可读取的最后一次写操作的时间。

有关ok status 字段,operationTime字段和$clusterTime字段的详细信息,请参见Command Response