This version of the documentation is archived and no longer supported. To upgrade your 6.0 deployment, see the MongoDB 7.0 upgrade procedures.
To convert a non-unique index to a unique index, use the collMod command. The collMod command provides options to verify that your indexed field contains unique values before you complete the conversion.
Before you Begin
1
Steps
1
Prepare the index to be converted to a unique index
Run collMod on the type field index and set prepareUnique to true:
db.runCommand( {  collMod: "apples",  index: {  keyPattern: { type: 1 },  prepareUnique: true  } } ) 
After prepareUnique is set, you cannot insert new documents that duplicate an index key entry. For example, the following insert operation results in an error:
db.apples.insertOne( { type: "Delicious", quantity: 20 } ) 
MongoServerError: E11000 duplicate key error collection: test.apples index: type_1 dup key: { type: "Delicious" } 
2
Check for unique key violations
To see if there are any documents that violate the unique constraint on the type field, run collMod with unique: true and 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