-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: 6.0.0
-
Component/s: None
-
None
-
Fully Compatible
-
Execution Team 2022-10-17, Execution Team 2022-10-31
-
None
-
None
-
None
-
None
-
None
-
None
-
None
If your cluster is still running in FCV 5.0 mode and you follow the Convert an Existing Index to a Unique Index example, you receive the confusing error message:
MongoServerError: collMod does not support converting an index to 'unique' or to 'prepareUnique' mode
There is no mention that this could be a FCV problem, just that collMod doesn't support these operations - which it clearly does once you switch to FCV 6.0 mode.
Repro:
Enterprise test> db.adminCommand({setFeatureCompatibilityVersion:"5.0"})
{ ok: 1 }
Enterprise test> db.apples.insertMany( [
... { type: "Delicious", quantity: 12 },
... { type: "Macintosh", quantity: 13 },
... { type: "Delicious", quantity: 13 },
... { type: "Fuji", quantity: 15 },
... { type: "Washington", quantity: 10 },
... ] )
{
acknowledged: true,
insertedIds: {
'0': ObjectId("62d986221df5995914f86b4d"),
'1': ObjectId("62d986221df5995914f86b4e"),
'2': ObjectId("62d986221df5995914f86b4f"),
'3': ObjectId("62d986221df5995914f86b50"),
'4': ObjectId("62d986221df5995914f86b51")
}
}
Enterprise test> db.apples.createIndex( { type: 1 } )
type_1
Enterprise test> db.runCommand( {
... collMod: "apples",
... index: {
..... keyPattern: { type: 1 },
..... prepareUnique: true
..... }
... } )
MongoServerError: collMod does not support converting an index to 'unique' or to 'prepareUnique' mode
If we enable FCV 6.0 mode, the example now works as expected:
Enterprise test> db.adminCommand({setFeatureCompatibilityVersion:"6.0"})
{ ok: 1 }
Enterprise test> db.runCommand({ collMod: "apples", index: { keyPattern: { type: 1 }, prepareUnique: true } })
{ prepareUnique_old: false, prepareUnique_new: true, ok: 1 }