Los índices únicos no son compatibles en las colecciones particionadas, a menos que el índice sea la clave de partición o que la incluya como prefijo.
Acerca de esta tarea
La restricción de unicidad en un índice garantiza que los documentos en la colección tengan un conjunto único de valores en el campo. Con colecciones particionadas, MongoDB no aplica la restricción de exclusividad en el campo a menos que el índice sea la clave de partición o la incluya como prefijo. Para evitar problemas:
Para colecciones particionadas, si creas un índice único que no utiliza la clave de partición, MongoDB devuelve un error cuando ejecutas el
createIndexes.Si particionas una colección y la colección contiene un índice único que no utiliza la clave de partición, MongoDB devuelve un error cuando ejecutas el comando
shardCollection.
Pasos
Crear particiones en la colección
sh.shardCollection( "accounts.names", { region_id: 1 } )
{ collectionsharded: 'accounts.names', ok: 1, '$clusterTime': { clusterTime: Timestamp( { t: 1759260515, i: 58 } ), signature: { hash: Binary.createFromBase64( 'AAAAAAAAAAAAAAAAAAAAAAAAAAA=', 0 ), keyId: Long( '0' ) } }, operationTime: Timestamp( { t: 1759260515, i: 57 } ) }