View a markdown version of this page

Propriedade do índice: única - Amazon DocumentDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Propriedade do índice: única

Tipos de índice compatíveis

Opção 3.6 4,0 5,0 8.0 Cluster elástico
campo único Sim Sim Sim Sim Sim
compound Sim Sim Sim Sim Sim
chave múltipla Sim Sim Sim Sim Sim

Use a opção exclusiva para garantir a exclusividade dos campos nos documentos de uma coleção.

Exemplos

Os exemplos a seguir mostram como criar índices exclusivos no seguinte documento de amostra:

{ "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

Crie um índice de campo único exclusivo no ProductID para garantir que o mesmo ProductID não exista em mais de um documento:

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

Composto

Crie um índice composto exclusivo sobre SKU e fabricante para garantir que a mesma combinação de SKU e fabricante não exista em mais de um documento:

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

chave múltipla

Crie um índice exclusivo de várias chaves em códigos de barras para garantir que nenhum valor na matriz de códigos de barras não exista em mais de um documento:

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

A indexação de uma matriz cria uma entrada de índice para cada elemento da matriz. Por exemplo, se uma matriz tiver 50 itens, ela terá 50 entradas de índice. Por esse motivo, índices exclusivos de várias chaves reforçam a exclusividade em todos os itens individuais. Por exemplo, os documentos a seguir violarão a restrição exclusiva no índice do campo da matriz de valores:

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

Observe o seguinte comportamento com índices exclusivos:

  1. Se você criar um índice exclusivo em dados existentes em que dois (ou mais) documentos tenham os mesmos valores para os campos indexados, a criação do índice falhará com o seguinte erro: could not create unique index: <collection> index: <index name>

  2. Se você inserir um documento em que o valor do campo indexado corresponda ao valor desse campo em outro documento, a inserção falhará com o seguinte erro: E11000 duplicate key error collection: <collection> index: <index name>

  3. Se você atualizar um documento existente para que o novo valor do campo indexado corresponda ao valor desse campo em outro documento, a atualização falhará com o seguinte erro: E11000 duplicate key error collection: <collection> index: <index name>

  4. Se o campo indexado estiver ausente de um documento, o valor será tratado como nulo. As compilações, inserções e atualizações de índices falharão conforme descrito acima se o campo indexado estiver ausente em dois (ou mais) documentos.