On this page
db.collection.validate()
在本页面
Description
db.collection.
validate
(* true *)- 验证集合。该方法扫描收集数据并为正确性编制索引并返回结果。有关输出的详细信息,请参见Validate Output。
db.collection.validate()方法具有以下语法:
db.collection.validate( {
full: <boolean> // Optional
} )
要指定full
选项,您还可以使用:
db.collection.validate( <boolean> ) // full option
db.collection.validate()方法可以在字段中使用以下可选 document 参数:
Field | Type | Description |
---|---|---|
full |
boolean | 可选的 。一个标志,确定命令是执行较慢但更彻底的检查还是执行较快但次要的检查。 |
如果是true
,请执行更彻底的检查。
如果false
,则省略一些检查,以进行更胖但不彻底的检查。
默认值为false
。
从 MongoDB 3.6 开始,对于 WiredTiger 存储引擎,只有full
验证过程将强制检查点并将所有内存中数据刷新到磁盘,然后再验证磁盘上的数据。
在以前的版本中,WT 存储引擎的数据验证过程始终强制使用检查点。
db.collection.validate()方法是validate database command的包装。
Behavior
db.collection.validate()方法可能会占用大量资源,并且可能会影响 MongoDB 实例的性能。
db.collection.validate()方法获得对集合的排他锁。这将阻止对集合的所有读取和写入,直到操作完成。在辅助服务器上运行时,该操作可以阻止该辅助服务器上的所有其他操作,直到完成为止。
db.collection.validate()方法可能很慢,尤其是在较大的数据集上。
Note
由于validate扫描数据结构的方式,即使完全收集验证也无法检测到 MMAPv1 存储引擎数据文件上的所有损坏形式。
Examples
- 使用默认设置(即
full: false
)验证集合myCollection
db.myCollection.validate()
- 要对集合
myCollection
进行完全验证
db.myCollection.validate( { full: true } )
db.myCollection.validate(true)
有关输出的详细信息,请参见Validate Output。