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

Indice univoco MongoDB sull'elemento dell'array nei documenti (non nel documento nidificato)

Per farlo devi cambiare alcune cose.

Prima di tutto, il tuo schema deve essere un index così:

number: {
  type: String,
  index: true, // <-- This line
  unique: true
}

E, nella tua opzione di connessione aggiungi useCreateIndex: true . Ad esempio, ho:

const mongooseOpts = {
    useNewUrlParser: true,
    useFindAndModify: false,
    useUnifiedTopology: true,
    useCreateIndex: true //<-- This line
};

await mongoose.connect(uri, mongooseOpts);

Quindi, quando provi ad aggiungere un numero di telefono duplicato, verrà generato un errore.

Con questi due passaggi, se anche questo non ha funzionato, prova a rimuovere la collection e creare di nuovo.