On this page


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.


  • For most users, the reIndex command is unnecessary.
  • Avoid running reIndex for a replica set.
  • Do not run reIndex for 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().



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


reIndex always builds indexes in the foreground due to the logic described in Multiple Index Builds.


Index Build Operations on a Populated Collection for more information on the behavior of indexing operations in MongoDB.