【问题标题】:Command to reindex all mongodb collections重新索引所有 mongodb 集合的命令
【发布时间】:2012-08-29 22:10:45
【问题描述】:

对重新索引 MongoDB 集合的引用通常针对每个集合:

db.mycollection.reIndex();

我想一次重新索引多个集合。一个接一个会有点累。

在所有集合中发出reIndex(); 的适当命令是什么?

【问题讨论】:

  • 我很好奇,您需要为收藏重新编制索引的用例是什么?
  • 也许他正在迁移到新的索引格式(很久以前就改变了)。

标签: mongodb indexing


【解决方案1】:

这个呢?对数据库还是一一对应的,对你来说只有一个命令。

db.getCollectionNames().forEach(function(coll_name) {
  var coll = db.getCollection(coll_name);
  coll.reIndex();
});

【讨论】:

    【解决方案2】:

    Sergio 回答的稍微小一点的版本:

    db.getCollectionNames().forEach(function(collection){db[collection].reIndex()});
    

    无需先获取对集合的引用。

    【讨论】:

      猜你喜欢
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多