hello
定义
兼容性
此命令在以下环境中托管的应用程序中可用
MongoDB Atlas:云中 MongoDB 部署的全托管服务
注意
此命令在所有 MongoDB Atlas 集群中受支持。有关 Atlas 对所有命令的支持信息,请参阅 不受支持的命令。
MongoDB 企业版:基于订阅的自托管 MongoDB 版本
MongoDB 社区版:源代码可用、免费使用并自托管的 MongoDB 版本
语法
此命令具有以下语法
db.runCommand( { hello: 1 } )
hello
命令接受可选字段 saslSupportedMechs: <db.user>
以在结果中返回额外的字段 hello.saslSupportedMechs
,以及 comment <any>
以添加与命令相关的日志注释。
db.runCommand( { hello: 1, saslSupportedMechs: "<db.username>", comment: <any> } )
db.hello()
方法在 mongosh
中提供了对 hello
的包装。
行为
客户端断开连接
从MongoDB 4.2版本开始,如果发送 hello
命令的客户端在操作完成前断开连接,MongoDB将使用 killOp
将 hello
标记为终止。
输出
所有实例
以下 hello
字段在所有角色中都是通用的
hello.isWritablePrimary
一个布尔值,用于报告当前节点是否可写。如果
true
,则该实例是 主节点 在一个 副本集 中,或者是一个mongos
实例,或者一个独立的mongod
。
hello.maxBsonObjectSize
此
mongod
进程中允许的最大 BSON 对象大小(以字节为单位)。如果没有提供,客户端应假设最大大小为 "16 * 1024 * 1024
"。
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
启用了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
时,表示当前实例是 被动成员。只有具有members[n].priority
的成员才包含0
的passive
字段。
hello.hidden
一个布尔值,当值为
true
时,表示当前实例是 隐藏成员。只有隐藏成员才包含hidden
字段。
hello.tags
一个
tags
文档包含副本集成员的用户定义标签字段和值对。{ "<tag1>": "<string1>", "<tag2>": "<string2>",... } 对于读取操作,你可以在 读取偏好 中指定一个标签集,以将操作定向到具有指定标签的副本集成员。
对于写入操作,你可以使用 写入关注 来创建自定义设置,使用
settings.getLastErrorModes
和settings.getLastErrorDefaults
。
有关更多信息,请参阅 配置副本集标签集。
hello.me
返回
hello
的成员的[hostname]:[port]
。
hello.lastWrite
包含数据库最新写操作 optime 和日期信息的文档。
hello.lastWrite.opTime
一个对象,表示最后写入操作的optime。
hello.lastWrite.majorityWriteDate
包含可由
majority
读取读取的最后一次写入操作时间的日期对象。
有关ok
状态字段、operationTime
字段以及$clusterTime
字段详情,请参阅命令响应。