validate¶该validate命令检查集合的数据并为索引建立正确性并返回结果。
该命令具有以下语法:
该命令包含以下字段:
| 领域 | 类型 | 描述 |
|---|---|---|
validate |
串 | 要验证的集合的名称。 |
full |
布尔值 | 可选的。一个标志,用于确定命令执行的是较慢但更彻底的检查还是较快但较不彻底的检查。
默认值为 从MongoDB 3.6开始,对于WiredTiger存储引擎,只有
在以前的版本中,WT存储引擎的数据验证过程始终强制执行检查点。 |
该mongo外壳还提供了一个包装器
db.collection.validate():
该validate命令可能很慢,尤其是在较大的数据集上。
该validate命令W在集合上获得排他锁。这将阻止对集合的所有读取和写入,直到操作完成。在辅助服务器上运行时,该
validate操作可以阻止该辅助服务器上的所有其他操作,直到完成为止。
MongoDB驱动程序会自动将afterClusterTime设置为与因果一致的会话相关联的操作。从MongoDB 4.2开始,该
validate命令不再支持afterClusterTime。因此,validate不能与因果一致的会话相关联。
myCollection使用默认设置(即)验证集合full: false
执行收集的完整验证 myCollection
注意
输出可能会有所不同,具体取决于您的MongoDB实例的版本和特定配置。
指定以获得更详细的输出。{ full: true }
validate.ns¶集合的完整名称空间名称。命名空间包括表单中的数据库名称和集合名称
database.collection。
validate.nInvalidDocuments¶集合中无效文件的数量。
validate.nIndexes¶集合上的索引数。
validate.keysPerIndex¶包含集合中每个索引的名称和索引条目计数的文档。
从MongoDB 4.2(以及4.0.10+和3.6.13+)开始,
keysPerIndex仅通过索引名称标识索引。MongoDB的早期版本显示索引的完整名称空间。即<db>.<collection>.$<index_name>
validate.indexDetails¶包含每个索引的索引验证状态的文档。
从MongoDB 4.2(以及4.0.10+和3.6.13+)开始,
indexDetails标识无效的特定索引。如果任何索引无效,则早期版本的MongoDB会将所有索引标记为无效。indexDetails仅通过索引名称标识索引。MongoDB的早期版本显示索引的完整名称空间。即<db>.<collection>.$<index_name>。validate.extraIndexEntries¶一个数组,其中包含指向指向集合中不存在的文档的每个索引条目的信息。
注意
对于extraIndexEntries数组,所有indexKey字段大小的总和限制为1MB,其中大小包括键和的值indexKey。如果总和超过此大小,警告字段将显示一条消息。
从MongoDB 4.2(以及4.0.10+和3.6.13+)开始可用
validate.missingIndexEntries¶一个数组,其中包含缺少相应索引条目的每个文档的信息。
注意
对于missingIndexEntries阵列,所述的总和idKey字段大小和它的所有indexKey字段大小为1MB的限制,其中所述场尺寸包括既为键和值idKey和indexKey。如果总和超过此大小,警告字段将显示一条消息。
从MongoDB 4.2(以及4.0.10+和3.6.13+)开始可用