View a markdown version of this page

Propiedad de índice: única - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Propiedad de índice: única

Tipos de índices compatibles

Opción 3.6 4.0 5.0 8.0 Clúster elástico
campo único
compuesto
tecla múltiple

Utilice la opción exclusiva para garantizar la unicidad de los campos en todos los documentos de una colección.

Ejemplos

Los siguientes ejemplos muestran cómo crear índices únicos en el siguiente documento de ejemplo:

{ "productId": "PROD133726", "sku": "SKU24224", "name": "Basic Printer", "manufacturer": "The Manufacturer", "tags": [ "printer", "basic", "electronics", "business" ], "barcodes": [ "542364671", "886330670", "437445606" ], "reviews": [ { "review_date": ISODate('2024-01-19T21:37:10.585Z'), ... } ], "material": "Polycarbonate", "color": "Space Gray", "supplier": { "supplierId": "SUP4", "location": { "type": "Point", "coordinates": [ -71.0589, 42.3601 ] } }, "productEmbedding": [ -0.019320633663838058, 0.019672111388113596 ], "lastUpdated": ISODate('2025-10-20T21:37:10.585Z') }

campo único

Crea un índice de campo único en el ProductID para asegurarte de que el mismo ProductID no exista en más de un documento:

db.collection.createIndex( { "productId": 1 }, { name: "productId_unique", unique: true } )

Compuesto

Crea un índice compuesto único sobre el SKU y el fabricante para asegurarte de que la misma combinación de SKU y fabricante no exista en más de un documento:

db.collection.createIndex( { "sku": 1, "manufacturer": 1 }, { name: "sku_and_manufacturer_unique", unique: true } )

clave múltiple

Cree un índice único de códigos de barras con múltiples claves para asegurarse de que ningún valor de la matriz de códigos de barras exista en más de un documento:

db.collection.createIndex( { "barcodes": 1 }, { name: "barcodes_unique", unique: true } )

Al indexar una matriz, se crea una entrada de índice para cada elemento de la matriz. Por ejemplo, si una matriz tiene 50 elementos, tiene 50 entradas de índice. Por este motivo, los índices multiclave únicos garantizan la unicidad de todos los elementos individuales. Por ejemplo, los siguientes documentos infringirán la restricción de exclusividad en el índice de campos de matriz de valores:

{ "values": [ 1, 2, 3] } { "values": [ 3, 2 ] } --> 3 and 2 already exist { "values": [ 1 ] } --> 1 already exists

Tenga en cuenta el siguiente comportamiento con índices únicos:

  1. Si crea un índice único a partir de datos existentes en el que dos (o más) documentos tienen los mismos valores para los campos indizados, la creación del índice fallará y aparecerá el siguiente error: could not create unique index: <collection> index: <index name>

  2. Si inserta un documento en el que el valor del campo indizado coincide con el valor de ese campo en otro documento, la inserción no se realizará correctamente y aparecerá el siguiente error: E11000 duplicate key error collection: <collection> index: <index name>

  3. Si actualizas un documento existente para que el nuevo valor del campo indexado coincida con el valor de ese campo en otro documento, la actualización fallará y aparecerá el siguiente error: E11000 duplicate key error collection: <collection> index: <index name>

  4. Si el campo indexado no aparece en un documento, el valor se considerará nulo. La creación, inserción y actualización del índice fallarán tal y como se describió anteriormente si el campo indexado no aparece en dos (o más) documentos.