On this page
isMaster
在本页面
Definition
如果实例是副本集的成员,则isMaster返回副本集配置和状态的子集,包括实例是否为副本集的primary。
当发送到不是副本集成员的mongod实例时,isMaster返回此信息的子集。
MongoDB drivers和clients使用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
isMaster.
maxMessageSizeBytes
- BSON有线协议消息的最大允许大小。默认值为
48000000
个字节。
- BSON有线协议消息的最大允许大小。默认值为
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 版的新功能。
mongod或mongos实例可用于与 Client 端通信的有线协议的最早版本。
Client 端可以使用minWireVersion帮助协商与 MongoDB 的兼容性。
isMaster.
maxWireVersion
- 2.6 版的新功能。
mongod或mongos实例可用于与 Client 端通信的最新版本的有线协议。
Client 端可以使用maxWireVersion帮助协商与 MongoDB 的兼容性。
isMaster.
readOnly
- 3.4 版的新功能。
一个布尔值,当true
时,指示mongod或mongos以只读模式运行。
isMaster.
compression
- 3.4 版的新功能。
一个数组,列出了用于压缩 Client 端和mongod或mongos实例之间的通信的压缩算法(即 Client 端和mongod或mongos实例共有)。
仅当使用压缩时,此字段才可用。例如:
- 如果启用了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 端指定未为连接的mongod或mongos实例启用压缩器,则该字段不会返回。
Sharded Instances
mongos个实例将以下字段添加到isMaster响应文档中:
Replica Sets
副本集的成员返回isMaster时,包含以下字段:
isMaster.
setName
- 当前:replica 集的名称。
isMaster.
setVersion
- 2.6 版的新功能。
当前副本集的配置版本。
isMaster.
secondary
- 一个布尔值,当
true
时,指示mongod是否是replica set的secondary成员。
- 一个布尔值,当
isMaster.
hosts
"[hostname]:[port]"
格式的字符串数组,列出了replica set既不是hidden,passive也不是arbiters的所有成员。
驱动程序使用此数组和isMaster.passives确定要读取的成员。
isMaster.
passives
"[hostname]:[port]"
格式的字符串数组,列出members[n].priority的0
的replica set的所有成员。
仅当至少有一个成员的members[n].priority为0
时,才会显示此字段。
驱动程序使用此数组和isMaster.hosts确定要读取的成员。
isMaster.
arbiters
"[hostname]:[port]"
格式的字符串数组,列出了replica set的所有成员arbiters。
仅当副本集中至少有一个仲裁器时,才会显示此字段。
isMaster.
primary
"[hostname]:[port]"
格式的字符串,列出副本集的当前primary成员。
isMaster.
arbiterOnly
- 一个布尔值,当
true
时,指示当前实例是arbiter。如果实例是仲裁者,则仅提供arbiterOnly字段。
- 一个布尔值,当
isMaster.
passive
- 一个布尔值,当
true
时,指示当前实例为passive。 passive字段仅对members[n].priority为0
的成员显示。
- 一个布尔值,当
{ "<tag1>": "<string1>", "<tag2>": "<string2>",... }
对于读取操作,您可以在read preference中指定一个标签集,以将操作定向到具有指定标签的副本集成员。
对于写操作,可以使用settings.getLastErrorModes和settings.getLastErrorDefaults创建自定义write concern。
有关更多信息,请参见配置副本集标记集。
See also
isMaster.
me
- 返回isMaster的成员的
[hostname]:[port]
。
- 返回isMaster的成员的
isMaster.
electionId
- 3.0 版中的新功能。
每次选举的唯一标识符。仅包含在primary的isMaster输出中。Client 用来确定何时进行选举。
isMaster.
lastWrite
- 3.4 版的新功能。
包含optime和日期信息的文档,用于数据库的最新写入操作。
isMaster.lastWrite.
opTime
- 提供上一次写入操作的optime的对象。
isMaster.lastWrite.
lastWriteDate
- date对象,包含上一次写入操作的时间。
isMaster.lastWrite.
majorityOpTime
isMaster.lastWrite.
majorityWriteDate
有关ok
status 字段,operationTime
字段和$clusterTime
字段的详细信息,请参见Command Response。