Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Garantizar la unicidad de los valores clave del fragmento.

Para garantizar la unicidad de los valores de la clave de fragmento, pase el parámetro unique como true al método sh.shardCollection().

Un índice único en la clave de fragmentación garantiza la unicidad de toda la combinación de claves, no de los componentes individuales de la clave de fragmentación.

No se puede especificar unique como true cuando se utiliza una clave de fragmento hash.

Se aplican las siguientes restricciones cuando se especifica unique: true:

  • Si la colección está vacía, sh.shardCollection() crea un índice único en la clave de fragmentación si tal índice no existe ya.

  • Si la colección no está vacía, primero se debe crear el índice antes de usar sh.shardCollection().

  • Si la colección tiene un índice que admite la clave de partición pero ese índice no es único, sh.shardCollection() devuelve un error.

Aunque se puede tener un índice compuesto único donde la clave de fragmentación es un prefijo, si se utiliza el parámetro unique, la colección debe tener un índice único que esté en la clave de partición.

Si omite unique o especifica unique: false, sh.shardCollection() no modifica los índices existentes de la colección. Si ya existe un índice único en la clave de fragmento, dicho índice permanece único y el clúster fragmentado continúa aplicando la restricción de unicidad a los valores de la clave de fragmento en todos los fragmentos.

Para consultar el conjunto completo de restricciones que se aplican a los índices únicos en colecciones fragmentadas, consulte la sección "Mantener la unicidad en clústeres fragmentados".

  • Confirme que ningún documento existente infringe la restricción de unicidad para los valores de la clave de fragmentación.

  • Conectar mongosh a una instancia de mongos.

El siguiente ejemplo divide la colección accounts.names en region_id y aplica una restricción de unicidad a los valores de la clave de la partición.

1
use accounts
db.names.createIndex( { "region_id": 1 }, { unique: true } )
2

Para dividir la colección en el índice único region_id. El parámetro unique es el tercer argumento de sh.shardCollection():

sh.shardCollection( "accounts.names", { region_id: 1 }, true )