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

Utilizza l'opzione unica per garantire l'unicità dei campi tra 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 univoco a campo singolo su ProductID per garantire 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 univoco su sku e manufacturer per assicurarti che la stessa combinazione di sku e manufacturer 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 univoco a più chiavi sui codici a barre per garantire che qualsiasi valore nella matrice 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 un array contiene 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

Nota 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 fallirà con 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 e verrà visualizzato 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 e verrà visualizzato 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. La creazione, l'inserimento e l'aggiornamento dell'indice falliranno come descritto sopra se il campo indicizzato non è presente in due (o più) documenti.