对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs 菜单

hello(数据库命令)

hello

版本 5.0 中的新增功能。

hello 返回一份描述 mongod 实例角色的文档。如果指定了可选字段 saslSupportedMechs,则该命令还会返回 array of SASL mechanisms,用于创建该指定用户的凭证。

如果该实例是副本集的节点,则 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>
}
)

mongosh 中的 db.hello() 方法会提供有关 hello 的封装器。

如果发出 hello 的客户端在操作完成之前断开连接,MongoDB 会使用 hello 将 killOp 标记为终止。

以下 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

该 mongod 或 mongos 实例能够用来与客户端通信的传输协议的最早版本。

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

hello.maxWireVersion

该 mongod 或 mongos 实例能够用来与客户端通信的传输协议的最新版本。

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

hello.readOnly

布尔值,当为 true 时,表示 mongod 或 mongos 以只读模式运行。

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.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].priority为0的所有成员。

只有当至少有一名成员的 members[n].priority 为 0 时,该字段才会出现。

驱动程序使用此数组和 hello.hosts 来确定要从哪些节点中读取。

hello.arbiters

"[hostname]:[port]" 格式的字符串数组,列出该副本集的所有仲裁节点。

仅当副本集中至少有一个仲裁节点时才会显示该字段。

hello.primary

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

hello.arbiterOnly

一个布尔值,当其为 true 时,该值表示当前实例是仲裁节点。仅当该实例是仲裁节点时,arbiterOnly 字段才出现。

hello.passive

一个布尔值,为 true 时,表示当前实例处于被动状态。passive 字段仅适用于 members[n].priority 为 0 的节点。

hello.hidden

一个布尔值,为 true 时,表示当前实例被隐藏。hidden 字段仅针对隐藏节点存在。

hello.tags

一份 tags 文档包含用户定义的副本集节点标签字段和值对。

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

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

hello.me

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

hello.electionId

每次选举的唯一标识符。仅包含在主节点的 hello 输出中。客户端用于确定何时进行选举。

hello.lastWrite

包含数据库最近一次写入操作的 ops/sec 和日期信息的文档。

hello.lastWrite.opTime

一个对象,给出上次写入操作的 ops/sec。

hello.lastWrite.lastWriteDate

一个日期对象,包含上次写入操作的时间。

hello.lastWrite.majorityOpTime

对象,给出 majority 读可读取的最后一次写操作的 ops/sec。

hello.lastWrite.majorityWriteDate

一个日期对象,包含可被 majority 读取的上次写入操作时间。

有关 ok 状态字段、operationTime 字段和 $clusterTime 字段的详细信息,请参阅“命令响应”。

给本页内容打分