对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

db.checkMetadataConsistency()(mongosh方法)

db.checkMetadataConsistency(options)

对集群或数据库的分片元数据执行一系列一致性检查。 此方法返回一个游标,其中包含找到的全部或批处理的不一致结果。

重要

mongosh 方法

本页面提供 mongosh 方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。

有关数据库命令,请参阅 checkMetadataConsistency 命令。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

在重大维护操作(例如升级和降级)后运行此方法,或检查集群元数据是否由于MongoDB版本中的错误而不一致或损坏。

默认情况下,该方法不会检查索引在分片之间的一致性。 如果索引检查与创建、删除或修改索引的操作同时运行,则可能会返回不一致的误报。 要使用此方法检查索引,请设置checkIndexes选项。

默认,该方法检查给定数据库的分片元数据。 如果在admin数据库上运行,它会检查整个集群的分片元数据。

有关此方法搜索不一致的更多信息,请参阅不一致类型。

返回:

此方法返回带有documents数组的游标,该数组包含分片元数据中发现的每个不一致的文档。

此方法可用于以下环境中托管的部署:

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

重要

M0 和 Flex 集群不支持此命令。有关更多信息,请参阅不支持的命令。

注意

checkMetadataConsistency 助手仅在连接到 mongos 时才可执行。 mongod 不支持此方法。

db.checkMetadataConsistency() 方法使用的语法如下:

db.checkMetadataConsistency( { <options> } )

options文档可以采用以下字段和值:

字段
类型
说明

checkIndexes

布尔

设置该命令是否还检查分片元数据中的索引。

默认情况下,此操作处于禁用状态,因为与创建、删除或修改索引的操作并发运行时,它可能会返回不一致的误报。 仅当您知道这些操作不太可能发生时才检查索引。

cursor

文档

配置返回游标。

cursor.batchSize

整型

每个批次中包含的分片元数据不一致文档的最大数量。

要对数据库执行一致性检查,请调用db.checkMetadataConsistency()方法:

use library
db.checkMetadataConsistency()
{
cursorHasMore: false,
documents: [
{
type: "MisplacedCollection",
description: "Unsharded collection found on shard different from database primary shard",
details: {
namespace: "library.authors",
shard: "shard02",
localUUID: new UUID("1ad56770-61e2-48e9-83c6-8ecefe73cfc4")
}
}
],
}

要对集群执行一致性检查,请从admin数据库调用db.checkMetadataConsistency()方法:

use admin
db.checkMetadataConsistency()
{
cursorHasMore: false,
documents: [
{
type: "MisplacedCollection",
description: "Unsharded collection found on shard different from database primary shard",
details: {
namespace: "library.authors",
shard: "shard02",
localUUID: new UUID("1ad56770-61e2-48e9-83c6-8ecefe73cfc4")
}
}
],
}