Visit complete MongoDB roadmap
MongoDB Topic

validate()

validate()

The validate command is used to examine a MongoDB collection to verify and report on the correctness of its internal structures, such as indexes, namespace details, or documents. This command can also return statistics about the storage and distribution of data within a collection.

Usage

The basic syntax of the validate command is as follows:

db.runCommand({validate: "<collection_name>", options...})

<collection_name> is the name of the collection to be validated.

Options

  • full: (default: false) When set to true, the validate command conducts a more thorough inspection of the collection, looking through all its extents, which are contiguous sections of the collection’s data on disk. This option should be used with caution as it may impact read and write performance.

  • background: (default: false) When set to true, the validate command runs in the background, allowing other read and write operations on the collection to proceed concurrently. This option is beneficial for large collections, as it minimizes the impact on system performance.

Example

Validate a collection named “products”:

db.runCommand({ validate: 'products' });

Validate the collection and perform a background and full check:

db.runCommand({ validate: 'products', background: true, full: true });

Output

The validate command returns an object that contains information about the validation process and its results.

{
    "ns": <string>, // Namespace of the validated collection
    "nIndexes": <number>, // Number of indexes in the collection
    "keysPerIndex": {
        <index_name>: <number> // Number of keys per index
    },
    "valid": <boolean>, // If true, the collection is valid
    "errors": [<string>, ...], // Array of error messages, if any
    "warnings": [<string>, ...], // Array of warning messages, if any
    "ok": <number> // If 1, the validation command executed successfully
}

Keep in mind that the validate command should be used mainly for diagnostics and troubleshooting purposes, as it can impact system performance when validating large collections or when using the full flag. Use it when you suspect that there might be corruption or discrepancies within the collection’s data or internal structures.

That’s all about the validate command. Now you know how to check the correctness of your MongoDB collections and gather important statistics about their internal structures.

More Topics

Explore related content

View All Topics
Loved by 100K+ Developers

Start Your Learning
Journey Today

Join thousands of developers who are leveling up their skills with structured roadmaps and expert guidance

No credit card required
Always free
Track your progress