Índices únicos, parciales y dispersos

Impón valores únicos o indexa solo parte de la colección.

Impón valores únicos en todo el clúster o indexa solo los documentos que te interesan.

Requisitos

  • Un usuario con dbAdmin o readWrite sobre la base.

Único

JavaScript
db.usuarios.createIndex({ email: 1 }, { unique: true });

Es único en todo el clúster, también en una colección con shard key.

Parcial

JavaScript
db.pedidos.createIndex({ creado: 1 }, { partialFilterExpression: { estado: "pendiente" } });

Disperso

JavaScript
db.usuarios.createIndex({ telefono: 1 }, { sparse: true });

Comprobar

Una inserción con un email que ya existe en la colección falla con DuplicateKey (11000) y no se guarda.

Problemas frecuentes

  • El índice único no se crea porque la colección ya tiene valores repetidos en ese campo.

Ver también