Crear índices sin parar el servicio
Crea o cambia índices mientras la colección sigue recibiendo escrituras.
Crea o cambia índices mientras la colección sigue recibiendo lecturas y escrituras, sin ventana de mantenimiento.
Requisitos
- Un usuario con
dbAdminoreadWritesobre la base.
Crear el índice
JavaScript
db.pedidos.createIndex({ cliente: 1, creado: -1 });createIndexes construye el índice sin parar las escrituras de la colección, que siguen entrando durante la
construcción.
Cambiar un índice existente
JavaScript
db.runCommand({ collMod: "pedidos", index: { name: "cliente_1_creado_-1", hidden: true } });Ocultar un índice antes de borrarlo te deja ver si alguna consulta lo echa de menos.
Comprobar
Cuando termina la construcción, db.pedidos.getIndexes() lista el índice nuevo junto a los que ya tenía la colección.
Problemas frecuentes
- La construcción falla si un documento no cumple el índice, por ejemplo un valor repetido en uno único; el error nombra el primero en orden de
_id.