参考 > 参考 > mongo Shell方法 > 收集方法 > db.collection.reIndex()
在本页面
db.collection.
reIndex
()¶mongo
壳法
此页面记录了mongo
shell方法,并且
没有引用MongoDB Node.js驱动程序(或任何其他驱动程序)方法。对于相应的MongoDB驱动程序API,请改为参考您特定的
MongoDB驱动程序文档。
在db.collection.reIndex()
上一集下降的所有索引,并重新创建它们。对于具有大量数据和/或大量索引的集合,此操作可能会很昂贵。
警告
对于大多数用户而言,该db.collection.reIndex()
操作是不必要的。
避免db.collection.reIndex()
针对副本集中的集合运行。
不要db.collection.reIndex()
针对分片群集中的集合运行。
在版本4.2中进行了更改: MongoDB不允许db.collection.reIndex()
在上运行mongos
,从而对分片db.collection.reIndex()
群集中的集合实施了更严格的限制
。
注意
对于副本集,db.collection.reIndex()
不会从主要副本传播
到次要副本。db.collection.reIndex()
只会影响单个mongod
实例。
"4.0"
或更早版本的MongoDB 2.6至MongoDB版本,
如果现有文档的索引条目超过,则MongoDB 不会在集合上创建索引。Maximum Index Key Length
在版本4.2.2中更改。
对于MongoDB 4.2.2和更高版本,db.collection.reIndex()
在集合上获得排他(W)锁,并在集合完成之前阻止其他操作。
对于MongoDB 4.0.0至4.2.1,db.collection.reIndex()
获得全局排他(W)锁并在上阻止其他操作,
mongod
直到完成。
对于MongoDB 3.6及更早版本,这些操作
db.collection.reIndex()
在数据库上获得排他(W)锁,并阻塞数据库上的其他操作,直到完成。
有关锁定MongoDB的更多信息,请参阅FAQ:并发。
也可以看看