Í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
dbAdminoreadWritesobre 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.