On this page
db.collection.reIndex()
在本页面
db.collection.
reIndex
( )- db.collection.reIndex()删除集合上的所有索引并重新创建它们。对于具有大量数据和/或大量索引的集合,此操作可能会很昂贵。
Warning
对于大多数用户来说,不需要db.collection.reIndex()操作。
避免对副本集中的集合运行db.collection.reIndex()。
不要对分片群集中的集合运行db.collection.reIndex()。
Behavior
Note
对于副本集,db.collection.reIndex()不会从primary传播到secondaries。 db.collection.reIndex()仅会影响一个mongod实例。
Important
由于多索引构建中所述的逻辑,db.collection.reIndex()总是在前台构建索引。
在 2.6 版中进行了更改:如果索引字段的索引条目超过Maximum Index Key Length
,则重新索引操作将出错。重新索引操作是compact和repairDatabase命令以及db.collection.reIndex()方法的一部分。
由于这些操作会从集合中删除所有索引,然后按 Sequences 重新创建它们,因此Maximum Index Key Length
中的错误会阻止这些操作为该集合重建任何剩余的索引,并且对于repairDatabase命令,将阻止它们 continue 执行剩余的索引。过程。
See also