Esta versión de la documentación se archivó y ya no se admite. Para actualizar tu implementación de 6.0, consulta el Procedimientos de actualización de MongoDB.7.0
Para convertir un índice no único a un índice único, usa el collModComando. El collMod comando proporciona opciones para verificar que el campo indexado contenga valores únicos antes de completar la conversión.
Antes de comenzar
1
Pasos
1
Preparar el índice que se convertirá en un índice único
Ejecuta collMod en el índice de campo type y establece prepareUnique en true:
db.runCommand( { collMod: "apples", index: { keyPattern: { type: 1 }, prepareUnique: true } } )
Después de configurar prepareUnique, no se pueden insertar nuevos documentos que dupliquen una entrada de clave de índice. Por ejemplo, la siguiente operación de inserción genera un error:
db.apples.insertOne( { type: "Delicious", quantity: 20 } )
MongoServerError: E11000 duplicate key error collection: test.apples index: type_1 dup key: { type: "Delicious" }
2
Comprobar violaciones de claves únicas
Para ver si hay documentos que violen la restricción única en el campo type, ejecute collMod con unique: true y dryRun:
true:
db.runCommand( { collMod: "apples", index: { keyPattern: { type: 1 }, unique: true }, dryRun: true } )
MongoServerError: Cannot convert the index to unique. Please resolve conflicting documents before running collMod again. Violations: [ { ids: [ ObjectId("660489d24cabd75abebadbd0"), ObjectId("660489d24cabd75abebadbd2") ] } ]
3
4