2012-08-29 18 views
5

Las referencias a la indexación colecciones MongoDB son por lo general por la colección:Comando volver a indexar todas las colecciones mongodb

db.mycollection.reIndex(); 

me gustaría volver a indexar una serie de colecciones a la vez. Uno por uno puede ser un poco agotador.

¿Cuál es el comando apropiado para emitir reIndex(); en todas las colecciones?

+0

Tengo curiosidad, ¿cuál es su caso de uso en el que necesita volver a indexar sus colecciones? – JohnnyHK

+0

Tal vez está migrando a un nuevo formato de índice (fue cambiado hace bastante tiempo). –

Respuesta

13

¿Qué tal esto? Sigue siendo uno a uno para la base de datos, pero solo un comando para usted.

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

versión ligeramente más pequeña de la respuesta de Sergio:

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

No hay necesidad de obtener una referencia a la colección en primer lugar.

Cuestiones relacionadas