我是否需要多次运行ensureIndex命令
db.collection1.ensureIndex({ <key>: 1})
db.collection2.ensureIndex({ <key>: 1})
db.collection3.ensureIndex({ <key>: 1})
或者有没有办法为数据库中的所有集合运行ensureIndex?
db.collectionX.ensureIndex({ <key>: 1})
答案 0 :(得分:2)
简短回答:不。
答案很长:不,你仍然无法做到。
在设计数据库时,通常有两个阶段:
创建所有集合,然后对每个集合运行ensureIndex
命令。除非您迁移数据库,否则只需执行一次,您可能需要再次运行ensureIndex
命令。
第二阶段是编辑馆藏结构(改进数据库,删除字段,添加字段)。在您编辑了某些字段后,他们可能还需要一些索引或需要编辑一些现有索引。在这种情况下,您通常会删除并创建其他索引。此命令仍然只运行一次。
总之,在很多情况下,开发人员或管理员需要在多个集合上运行ensureIndex
很多次才需要一个命令来更改所有索引。即使存在这样的情况,这些集合需要相同索引的可能性是多少?