- Reference >
mongo
Shell Methods >- Collection Methods >
- db.collection.validate()
db.collection.validate()¶
On this page
Description¶
-
db.collection.
validate
(<option>)¶ Important
mongo
Shell MethodThis page documents a
mongo
method. This is not the documentation for database commands or language-specific drivers, such as Node.js. To use the database command, see thevalidate
command.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.
The
db.collection.validate()
method has the following syntax:To specify only the
full
option, you can also use:The
db.collection.validate()
method can take the following optional document parameter with the fields:Field Type Description full
boolean Optional. A flag that determines whether the command performs a slower but more thorough check or a faster but less thorough check.
- If
true
, performs a more thorough check. - If
false
, omits some checks for a faster but less thorough check.
The default is
false
.Starting in MongoDB 3.6, for the WiredTiger storage engine, only the
full
validation process will force a checkpoint and flush all in-memory data to disk before verifying the on-disk data.In previous versions, the data validation process for the WT storage engine always forces a checkpoint.
The
db.collection.validate()
method is a wrapper around thevalidate
database command.- If
Behavior¶
Performance¶
The db.collection.validate()
method is potentially resource
intensive and may impact the performance of your MongoDB instance,
particularly on larger data sets.
The db.collection.validate()
method obtains an exclusive lock
on the collection. 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.
Warning
Due to the performance impact of validation, consider running
db.collection.validate()
only on secondary replica
set nodes. You can use rs.stepDown()
to instruct the
current primary node to become a secondary to avoid
impacting a live primary node.
Data Throughput Metrics¶
Examples¶
To validate a collection
myCollection
using the default settings (i.e.full: false
)To perform a full validation of collection
myCollection
For details of the output, see Validate Output.