Los índices únicos no son compatibles con colecciones fragmentadas a menos que el índice sea la clave de la fragmentación o 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 fragmentadas, si crea un índice único que no utiliza la clave de fragmentación, MongoDB devuelve un error cuando ejecuta el
createIndexesdominio.Si divides una colección en fragmentos y la colección contiene un índice único que no utiliza la clave de fragmentación, MongoDB devuelve un error cuando ejecutas el
shardCollectioncomando.
Pasos
Fragmentar 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 } ) }