文档菜单
文档首页
/
MongoDB 手册
/ / /

hello

在本页

  • 定义
  • 兼容性
  • 语法
  • 行为
  • 输出
hello

在版本5.0.

hello 返回一个文档,描述了mongod 实例的角色。如果指定了可选字段 saslSupportedMechs,则命令还会返回用于创建指定用户凭据的 SASL机制数组

如果该实例是复制集的成员,则 hello 返回复制集配置和状态的一个子集,包括该实例是否是复制集的 主节点

当发送到非副本集成员的 mongod 实例时,hello 返回该信息的一个子集。

MongoDB 驱动程序客户端 使用 hello 来确定副本集成员的状态,以及发现 副本集 的其他成员。

此命令在以下环境中托管的应用程序中可用

  • MongoDB Atlas:云中 MongoDB 部署的全托管服务

注意

此命令在所有 MongoDB Atlas 集群中受支持。有关 Atlas 对所有命令的支持信息,请参阅 不受支持的命令。

此命令具有以下语法

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将使用 killOphello 标记为终止。

以下 hello 字段在所有角色中都是通用的

hello.isWritablePrimary

一个布尔值,用于报告当前节点是否可写。如果 true,则该实例是 主节点 在一个 副本集 中,或者是一个 mongos 实例,或者一个独立的 mongod

如果该实例是副本集的 次要成员 或者是副本集的 仲裁者,则该字段将为 false

hello.topologyVersion

由 MongoDB 内部使用。

hello.maxBsonObjectSize

mongod 进程中允许的最大 BSON 对象大小(以字节为单位)。如果没有提供,客户端应假设最大大小为 "16 * 1024 * 1024"。

hello.maxMessageSizeBytes

BSON 网络协议消息允许的最大大小。默认值为 48000000 字节。

hello.maxWriteBatchSize

允许在写批处理中进行的最大写操作数量。如果批处理超过此 限制,客户端驱动程序将批处理分成更小的组,每组计数小于或等于此字段的值。

此限制的值为 100,000 写操作。

hello.localTime

返回本地服务器时间(UTC)。此值是一个 ISO 日期。

hello.logicalSessionTimeoutMinutes

会话在最近使用后保持活跃的分钟数。如果在阈值内未从客户端接收到新的读写操作或使用 refreshSessions 刷新,则从缓存中清除会话。过期的会话状态可能随时由服务器清理。

仅在 featureCompatibilityVersion"3.6" 或更高版本时才可用。

hello.connectionId

用于标识 mongod / mongos 实例与客户端之间出站连接的标识符。

hello.minWireVersion

mongodmongos 实例能够使用的最早的线协议版本,以与客户端通信。

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

hello.maxWireVersion

mongodmongos 实例能够使用的最新线协议版本,以与客户端通信。

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

hello.readOnly

一个布尔值,当设置为 true 时,表示 mongodmongos 正在以只读模式运行。

hello.compression

一个数组,列出用于或可供使用的压缩算法(即客户端和 mongodmongos 实例)之间的通信压缩。

该字段仅在启用压缩时可用。例如

  • 如果 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 或客户端没有指定压缩器,则该字段被省略。

也就是说,如果客户端没有指定压缩,或者客户端指定了连接的 mongodmongos 实例未启用的压缩器,则该字段不返回。

hello.saslSupportedMechs

用于创建用户凭证或凭证的 SASL 机制数组。支持以下 SASL 机制

  • GSSAPI

  • SCRAM-SHA-256

  • SCRAM-SHA-1

仅当运行带有 saslSupportedMechs 字段的命令时,该字段返回

db.runCommand( { hello: 1, saslSupportedMechs: "<db.username>" } )

mongos 实例会将以下字段添加到 hello 响应文档中

hello.msg

hello 从一个 mongos 实例返回时,包含值 isdbgrid

hello 由一个副本集成员返回时,包含以下字段

hello.hosts

一个字符串数组,格式为 "[hostname]:[port]",列出了所有既不是 隐藏成员被动成员,也不是 仲裁者副本集成员。

驱动程序使用此数组以及 hello.passives 来确定要读取哪些成员。

hello.setName

当前副本集的名称。

hello.setVersion

当前副本集配置的版本。

hello.secondary

一个布尔值,当为 true 时,表示 mongod次级 成员 副本集

hello.passives

一个字符串数组,格式为"[hostname]:[port]",列出所有具有members[n].priority0副本集成员。

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

驱动程序使用此数组和hello.hosts来确定从哪些成员读取。

hello.arbiters

一个字符串数组,格式为"[hostname]:[port]",列出所有副本集中的仲裁者成员。

仅当副本集中至少有一个仲裁者时,此字段才出现。

hello.primary

格式为 "[hostname]:[port]" 的字符串,列出现有副本集的 主节点

hello.arbiterOnly

一个布尔值,当为 true 时,表示当前实例是一个 仲裁者。当实例是仲裁者时,arbiterOnly 字段才会存在。

hello.passive

一个布尔值,当值为 true 时,表示当前实例是 被动成员。只有具有 members[n].priority 的成员才包含 0passive 字段。

hello.hidden

一个布尔值,当值为 true 时,表示当前实例是 隐藏成员。只有隐藏成员才包含 hidden 字段。

hello.tags

一个 tags 文档包含副本集成员的用户定义标签字段和值对。

{ "<tag1>": "<string1>", "<tag2>": "<string2>",... }

有关更多信息,请参阅 配置副本集标签集

提示

另请参阅

hello.me

返回 hello 的成员的 [hostname]:[port]

hello.electionId

每个选举的唯一标识符。仅在 hello 的输出中包含 主节点。客户端使用它来确定选举发生的时间。

hello.lastWrite

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

hello.lastWrite.opTime

一个对象,表示最后写入操作的optime

hello.lastWrite.lastWriteDate

包含最后写入操作时间的日期对象。

hello.lastWrite.majorityOpTime

一个对象,表示最后写入操作的optime,可供majority读取使用。

hello.lastWrite.majorityWriteDate

包含可由majority读取读取的最后一次写入操作时间的日期对象。

有关ok状态字段、operationTime字段以及$clusterTime字段详情,请参阅命令响应。

返回

applyOps