On this page本页内容
db.collection.validate(<documents>)
This is a mongosh
method. This is not the documentation for Node.js
or other programming language specific driver methods.
In most cases, mongosh
methods work the same way as the legacy mongo
shell methods. However, some legacy methods are unavailable in mongosh
.
For the legacy mongo
shell documentation, refer to the documentation for the corresponding MongoDB Server release:
For MongoDB API drivers, refer to the language specific MongoDB driver documentation.
Validates a collection. 验证集合。The method scans a collection data and indexes for correctness and returns the result. 该方法扫描集合数据和索引的正确性,并返回结果。For details of the output, see Validate Output.有关输出的详细信息,请参阅验证输出。
Starting in version 5.0, the 从5.0版开始,db.collection.validate()
method can also fix inconsistencies in the collection.db.collection.validate()
方法还可以修复集合中的不一致。
Index inconsistencies include:索引不一致包括:
multikeyPaths
覆盖的字段不是multikey
。multikeyPaths
,但有多键文档(对于3.4之前构建的索引)。If any inconsistencies are detected by the 如果db.collection.validate()
command, a warning is returned and the repair flag on the index is set to true
.db.collection.validate()
命令检测到任何不一致,将返回一个警告,并将索引上的修复标志设置为true
。
db.collection.validate()
also validates any documents that violate the collection's schema validation rules.还验证违反集合的模式验证规则的任何文档。
The db.collection.validate()
method is a wrapper around the validate
command.db.collection.validate()
方法是validate
命令的包装器。
db.collection.validate()
no longer accepts just a boolean parameter. 不再只接受布尔参数。See db.collection.validate() Parameter Change.请参阅db.collection.validate()
参数更改。
Changed in version 5.0.在版本5.0中更改。
The db.collection.validate()
method has the following syntax:db.collection.validate()
方法具有以下语法:
db.collection.validate( { full: <boolean>, // Optional repair: <boolean> // Optional, added in MongoDB 5.0 } )
The db.collection.validate()
method can take the following optional document parameter with the fields:db.collection.validate()
方法可以使用以下带有字段的可选文档参数:
full | boolean |
|
repair | boolean |
|
The db.collection.validate()
method is potentially resource intensive and may impact the performance of your MongoDB instance, particularly on larger data sets.db.collection.validate()
方法可能会占用大量资源,可能会影响MongoDB实例的性能,尤其是在较大的数据集上。
The db.collection.validate()
method obtains an exclusive lock on the collection. db.collection.validate()
方法获取集合的独占锁。This will block all reads and writes on the collection until the operation finishes. 这将阻止对集合的所有读取和写入,直到操作完成。When run on a secondary, the operation can block all other operations on that secondary until it finishes.在辅助设备上运行时,该操作可以阻止该辅助设备上的所有其他操作,直到完成为止。
Validation has exclusive lock requirements that affect performance on primaries and on secondaries that are servicing reads. 验证具有独占锁定要求,这会影响主服务器和为读取提供服务的辅助服务器的性能。Consider only running 考虑只在不提供读写服务的节点上运行db.collection.validate()
on nodes that are not servicing reads or writes.db.collection.validate()
。
To minimize impact on the primary, the majority of the data-bearing (non-arbiter), voting members in the cluster must be available and must not have significant replication lag.为了最大限度地减少对主节点的影响,集群中的大多数数据承载(非仲裁)、投票成员必须可用,并且不能有明显的复制延迟。
To minimize the impact of the validation operation on client applications, run 要最小化验证操作对客户端应用程序的影响,请在不为读取请求提供服务的辅助节点上运行db.collection.validate()
on a secondary node that is not servicing read requests. db.collection.validate()
。You can convert the current primary node to a secondary node, by running the 通过运行rs.stepDown()
method.rs.stepDown()
方法,可以将当前主节点转换为次节点。
To completely isolate the 要将db.collection.validate()
operation from client traffic, choose one of the following options:db.collection.validate()
操作与客户端流量完全隔离,请选择以下选项之一:
Starting in version MongoDB 4.4,从版本MongoDB 4.4开始,
$currentOp
and the currentOp
command include dataThroughputAverage
and dataThroughputLastSecond
information for validate operations in progress.$currentOp
和currentOp
命令包括dataThroughputAverage
和dataThroughputLastSecond
信息,用于验证正在进行的操作。dataThroughputAverage
and dataThroughputLastSecond
information.dataThroughputAverage
和dataThroughtputLastSecond
信息。To validate a collection 要使用默认验证设置(特别是myCollection
using the default validation setting (specifically, full: false):full:false
)验证集合myCollection
,请执行以下操作:
db.myCollection.validate() db.myCollection.validate({ }) db.myCollection.validate( { full: false } )
To perform a full validation of collection 要对集合myCollection
, specify full: true:myCollection
执行完全验证,请指定full:true
:
db.myCollection.validate( { full: true } )
To repair collection 要修复集合myCollection
, specify repair: true:myCollection
,请指定repair: true
:
db.myCollection.validate( { repair: true } )
For details of the output, see Validate Output.有关输出的详细信息,请参阅验证输出。