Navigation
This version of the documentation is archived and no longer supported.

Collection Validation Data

On this page

Synopsis

The collection validation command checks all of the structures within a name space for correctness and returns a document containing information regarding the on-disk representation of the collection.

Warning

The validate process may consume significant system resources and impede application performance because it must scan all data in the collection.

Run the validation command in the mongo shell using the following form to validate a collection named people:

db.people.validate()

Alternatively you can use the command prototype and the db.runCommand() shell helper in the following form:

db.runCommand( { validate: "people", full: true } )
db.people.validate(true)

See also

validate and validate().

Values

validate.ns

The full namespace name of the collection. Namespaces include the database name and the collection name in the form database.collection.

validate.firstExtent

The disk location of the first extent in the collection. The value of this field also includes the namespace.

validate.lastExtent

The disk location of the last extent in the collection. The value of this field also includes the namespace.

validate.extentCount

The number of extents in the collection.

validate.extents

validate returns one instance of this document for every extent in the collection. This sub-document is only returned when you specify the full option to the command.

validate.extents.loc

The disk location for the beginning of this extent.

validate.extents.xnext

The disk location for the extent following this one. “null” if this is the end of the linked list of extents.

validate.extents.xprev

The disk location for the extent preceding this one. “null” if this is the head of the linked list of extents.

validate.extents.nsdiag

The namespace this extent belongs to (should be the same as the namespace shown at the beginning of the validate listing).

validate.extents.size

The number of bytes in this extent.

validate.extents.firstRecord

The disk location of the first record in this extent.

validate.extents.lastRecord

The disk location of the last record in this extent.

validate.datasize

The number of bytes in all data records. This value does not include deleted records, nor does it include extent headers, nor record headers, nor space in a file unallocated to any extent. datasize includes record padding.

validate.nrecords

The number of documents in the collection.

validate.lastExtentSize

The size of the last new extent created in this collection. This value determines the size of the next extent created.

validate.padding

A floating point value between 1 and 2.

When MongoDB creates a new record it uses the padding factor to determine how much additional space to add to the record. The padding factor is automatically adjusted by mongo when it notices that update operations are triggering record moves.

validate.firstExtentDetails

The size of the first extent created in this collection. This data is similar to the data provided by the extents sub-document; however, the data reflects only the first extent in the collection and is always returned.

validate.firstExtentDetails.loc

The disk location for the beginning of this extent.

validate.firstExtentDetails.xnext

The disk location for the extent following this one. “null” if this is the end of the linked list of extents, which should only be the case if there is only one extent.

validate.firstExtentDetails.xprev

The disk location for the extent preceding this one. This should always be “null.”

validate.firstExtentDetails.nsdiag

The namespace this extent belongs to (should be the same as the namespace shown at the beginning of the validate listing).

validate.firstExtentDetails.size

The number of bytes in this extent.

validate.firstExtentDetails.firstRecord

The disk location of the first record in this extent.

validate.firstExtentDetails.lastRecord

The disk location of the last record in this extent.

validate.objectsFound

The number of records actually encountered in a scan of the collection. This field should have the same value as the nrecords field.

validate.invalidObjects

The number of records containing BSON documents that do not pass a validation check.

Note

This field is only included in the validation output when you specify the full option.

validate.bytesWithHeaders

This is similar to datasize, except that bytesWithHeaders includes the record headers. In version 2.0, record headers are 16 bytes per document.

Note

This field is only included in the validation output when you specify the full option.

validate.bytesWithoutHeaders

bytesWithoutHeaders returns data collected from a scan of all records. The value should be the same as datasize.

Note

This field is only included in the validation output when you specify the full option.

validate.deletedCount

The number of deleted or “free” records in the collection.

validate.deletedSize

The size of all deleted or “free” records in the collection.

validate.nIndexes

The number of indexes on the data in the collection.

validate.keysPerIndex

A document containing a field for each index, named after the index’s name, that contains the number of keys, or documents referenced, included in the index.

validate.valid

Boolean. true, unless validate determines that an aspect of the collection is not valid. When false, see the errors field for more information.

validate.errors

Typically empty; however, if the collection is not valid (i.e valid is false,) this field will contain a message describing the validation error.

validate.ok

Set to 1 when the command succeeds. If the command fails the ok field has a value of 0.