MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come garantire un elemento unico in un array basato su campi specifici - mongoDB?

Mustafa, i vincoli univoci non vengono applicati all'interno di un singolo array, sebbene vengano applicati tra i documenti di una raccolta. Questo è un bug noto che non verrà corretto per un po':

https://jira.mongodb.org/browse/SERVER-1068

C'è una soluzione alternativa, però. Mantieni il tuo indice univoco e:

1) Assicurati che la tua applicazione non inserisca nuovi documenti con valori duplicati nell'array. Puoi verificare l'unicità del codice della tua applicazione prima dell'inserimento.

2) Quando si aggiornano i documenti esistenti, utilizzare $addToSet invece di $push.