2012-08-29 11 views
5

Verweise auf reindexing MongoDB Sammlungen neu indizieren sind in der Regel pro Sammlung: auf einmalBefehl alle mongodb Sammlungen

db.mycollection.reIndex(); 

Ich möchte eine Reihe von Sammlungen neu indizieren. Einer nach dem anderen kann ein bisschen ermüdend werden.

Was ist der richtige Befehl, reIndex(); über alle Sammlungen ausgeben?

+0

Ich bin neugierig, was ist Ihr Anwendungsfall, wo Sie Ihre Sammlungen neu indizieren müssen? – JohnnyHK

+0

Vielleicht migriert er zum neuen Indexformat (es wurde schon vor einiger Zeit geändert). –

Antwort

13

Was ist damit? Es ist immer noch eins nach dem anderen für die Datenbank, aber nur ein Befehl für Sie.

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

etwas kleinere Version von Sergio Antwort:

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

Es gibt keine Notwendigkeit, zunächst einen Verweis auf die Sammlung zu erhalten.

Verwandte Themen