hello
定义
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
该命令具有以下语法:
db.runCommand( { hello: 1 } )
hello
命令接受可选字段 saslSupportedMechs: <db.user>
,以在结果中返回附加字段 hello.saslSupportedMechs
,并接受 comment <any>
以添加与命令相关的日志注释。
db.runCommand( { hello: 1, saslSupportedMechs: "<db.username>", comment: <any> } )
mongosh
中的 db.hello()
方法会提供有关 hello
的封装器。
行为
客户端断开连接
从 MongoDB 4.2 开始,如果在操作完成之前,发出 hello
的客户端断开连接,MongoDB 将使用killOp
将 hello
标记为终止。
输出
所有实例
以下 hello
字段在所有角色中通用:
hello.maxMessageSizeBytes
BSON 传输协议消息的最大允许大小。默认值为
48000000
字节。
hello.maxWriteBatchSize
写入批处理中允许的最大写入操作数。 如果批处理超过此限制,客户端驱动程序会将该批次分成较小的群组,每个群组的计数小于或等于此字段的值。
此限制的值为
100,000
次写入。
hello.localTime
以 UTC 为单位返回本地服务器时间。该值为 ISO 日期。
hello.logicalSessionTimeoutMinutes
会话在最近一次使用后保持活动状态的时间(以分钟为单位)。未从客户端收到新的读/写操作或未在此阈值内使用
refreshSessions
刷新的会话将从缓存中清除。与过期会话相关的状态可随时被服务器清理。仅当
featureCompatibilityVersion
不小于"3.6"
时才可用。
hello.minWireVersion
该
mongod
或mongos
实例能够用来与客户端通信的传输协议的最早版本。客户端可以使用
minWireVersion
来帮助协商与 MongoDB 的兼容性。
hello.maxWireVersion
该
mongod
或mongos
实例能够用来与客户端通信的传输协议的最新版本。客户端可以使用
maxWireVersion
来帮助协商与 MongoDB 的兼容性。
hello.compression
数组,列出用于或可用于压缩客户端与
mongod
或mongos
实例之间通信的压缩算法(即客户端与mongod
或mongos
实例通用的算法)。该字段仅在使用压缩时可用。例如:
如果启用
mongod
来同时使用两个snappy,zlib
压缩器,并且客户端指定了zlib
,则compression
字段将包含:"compression": [ "zlib" ] 如果启用
mongod
来同时使用两个snappy,zlib
压缩器,并且客户端指定了zlib,snappy
,则compression
字段将包含:"compression": [ "zlib", "snappy" ] 如果启用
mongod
来使用snappy
压缩器,并且客户端指定了zlib,snappy
,则compression
字段将包含:"compression": [ "snappy" ] 如果启用
mongod
来使用snappy
压缩器,并且客户端指定了zlib
或客户端未指定压缩器,则省略该字段。
也就是说,如果客户端未指定压缩,或者客户端指定了未为连接的
mongod
或mongos
实例启用的压缩算法,则不会返回该字段。
分片实例
副本集
hello
在副本集节点返回时包含以下字段:
hello.hosts
格式为
"[hostname]:[port]"
的字符串数组,其中列出了副本集中所有既非隐藏、消极也非仲裁节点的成员。驱动程序使用此数组和
hello.passives
来确定要从哪些节点中读取。
hello.passives
格式为
"[hostname]:[port]"
的字符串数组,列出了副本集中members[n].priority
为0
的所有成员。只有当至少有一名成员的
members[n].priority
为0
时,该字段才会出现。驱动程序使用此数组和
hello.hosts
来确定要从哪些节点中读取。
hello.primary
格式为
"[hostname]:[port]"
的字符串,列出副本集的当前主节点。
hello.arbiterOnly
一个布尔值,当其为
true
时,该值表示当前实例是仲裁节点。仅当该实例是仲裁节点时,arbiterOnly
字段才出现。
hello.passive
一个布尔值,为
true
时,表示当前实例处于被动状态。passive
字段仅适用于members[n].priority
为0
的节点。
hello.tags
一份
tags
文档包含用户定义的副本集节点标签字段和值对。{ "<tag1>": "<string1>", "<tag2>": "<string2>",... } 对于读取操作,您可以在读取偏好中指定标签集,以将操作定向到具有指定标签的副本集节点员。
对于写入操作,您可以使用
settings.getLastErrorModes
和settings.getLastErrorDefaults
创建自定义写关注。
有关更多信息,请参阅配置副本集标签集。
hello.me
返回
hello
的成员的[hostname]:[port]
。
hello.lastWrite
包含数据库最近一次写入操作的 ops/sec 和日期信息的文档。
hello.lastWrite.opTime
一个对象,给出上次写入操作的 ops/sec。
hello.lastWrite.majorityWriteDate
一个日期对象,包含可被
majority
读取的上次写入操作时间。
有关 ok
状态字段、operationTime
字段和 $clusterTime
字段的详细信息,请参阅“命令响应”。