View a markdown version of this page

Proprietà dell'indice: unica - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Proprietà dell'indice: unica

Tipi di indice supportati

Opzione 3.6 4.0 5.0 8.0 Cluster elastico
campo singolo
compound
chiave multipla

Utilizzate l'opzione unique per garantire l'unicità dei campi in tutti i documenti di una raccolta.

Esempi

Gli esempi seguenti mostrano come creare indici univoci nel seguente documento di esempio:

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

Crea un indice di campo singolo univoco su ProductID per assicurarti che lo stesso ProductID non esista in più di un documento:

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

Composto

Crea un indice composto unico su sku e manufacturer per assicurarti che la stessa combinazione di sku e produttore non esista in più di un documento:

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

chiave multipla

Crea un indice a più chiavi unico sui codici a barre per garantire che qualsiasi valore nell'array di codici a barre non esista in più di un documento:

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

L'indicizzazione di un array crea una voce di indice per ogni elemento dell'array. Ad esempio, se una matrice ha 50 elementi, ha 50 voci di indice. Per questo motivo, gli indici univoci a più chiavi impongono l'unicità di tutti i singoli elementi. Ad esempio, i seguenti documenti violeranno il vincolo univoco sull'indice del campo dell'array di valori:

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

Notate il seguente comportamento con indici univoci:

  1. Se crei un indice univoco su dati esistenti in cui due (o più) documenti hanno gli stessi valori per i campi indicizzati, la creazione dell'indice avrà esito negativo e genererà il seguente errore: could not create unique index: <collection> index: <index name>

  2. Se si inserisce un documento in cui il valore del campo indicizzato corrisponde al valore di quel campo in un altro documento, l'inserimento avrà esito negativo con il seguente errore: E11000 duplicate key error collection: <collection> index: <index name>

  3. Se si aggiorna un documento esistente in modo che il nuovo valore del campo indicizzato corrisponda al valore di quel campo in un altro documento, l'aggiornamento avrà esito negativo con il seguente errore: E11000 duplicate key error collection: <collection> index: <index name>

  4. Se il campo indicizzato non è presente in un documento, il valore verrà considerato nullo. Le compilazioni, gli inserimenti e gli aggiornamenti dell'indice falliranno come descritto sopra se il campo indicizzato non è presente in due (o più) documenti.