ensureIndex用于数据库中的所有集合

时间:2014-11-05 13:28:06

标签: mongodb pymongo

我是否需要多次运行ensureIndex命令

db.collection1.ensureIndex({ <key>: 1})
db.collection2.ensureIndex({ <key>: 1})
db.collection3.ensureIndex({ <key>: 1})

或者有没有办法为数据库中的所有集合运行ensureIndex?

db.collectionX.ensureIndex({ <key>: 1})

1 个答案:

答案 0 :(得分:2)

简短回答:不。

答案很长:不,你仍然无法做到。

在设计数据库时,通常有两个阶段:

  1. 创建所有集合,然后对每个集合运行ensureIndex命令。除非您迁移数据库,否则只需执行一次,您可能需要再次运行ensureIndex命令。

  2. 第二阶段是编辑馆藏结构(改进数据库,删除字段,添加字段)。在您编辑了某些字段后,他们可能还需要一些索引或需要编辑一些现有索引。在这种情况下,您通常会删除并创建其他索引。此命令仍然只运行一次。

  3. 总之,在很多情况下,开发人员或管理员需要在多个集合上运行ensureIndex很多次才需要一个命令来更改所有索引。即使存在这样的情况,这些集合需要相同索引的可能性是多少?