2012-08-29 31 views
5

引用重建索引MongoDB的集合通常每个集合:命令重新索引所有的MongoDB集合

db.mycollection.reIndex(); 

我想一次全部重新编制了一些藏品。一个接一个可能会有点累人。

跨所有集合发布reIndex();的适当命令是什么?

+0

我很好奇,您需要重新为您的收藏索引的用例是什么? – JohnnyHK

+0

也许他正在迁移到新的索引格式(很久以前它已经改变了)。 –

回答

13

这是怎么回事?数据库仍然是一个接一个,但只有一个命令给你。

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

Sergio的答案略小的版本:

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

没有必要首先去集合的引用。