Navigation

reIndex

On this page

reIndex

The reIndex command drops all indexes on a collection and recreates them. This operation may be expensive for collections that have a large amount of data and/or a large number of indexes.

Warning

  • For most users, the reIndex command is unnecessary.

  • Avoid running reIndex for a replica set.

  • Do not run reIndex against a collection in a sharded cluster.

    Changed in version 4.2: MongoDB disallows reIndex to be run on a mongos, implementing a stronger restriction against running reIndex for a collection in a sharded cluster.

Use the following syntax:

{ reIndex: <collection> }

The command takes the following fields:

Field Description
reIndex The name of the collection to reindex.

The mongo shell provides a wrapper db.collection.reIndex().

Behavior

Note

For replica sets, reIndex will not propagate from the primary to secondaries. reIndex will only affect a single mongod instance.

Important

Starting in MongoDB 4.0, reIndex takes a global exclusive (W) lock and blocks other operations on the database and all its collections until it finishes.

See

Index Builds on Populated Collections for more information on the behavior of indexing operations in MongoDB.