MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Index unique MongoDB sur l'élément de tableau à travers les documents (pas à travers le document imbriqué)

Pour ce faire, vous devez changer quelques éléments.

Tout d'abord, votre schéma doit être un index comme ceci :

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

Et, dans votre option de connexion, ajoutez useCreateIndex: true . Par exemple, j'ai :

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

await mongoose.connect(uri, mongooseOpts);

Ensuite, lorsque vous essayez d'ajouter un numéro de téléphone en double, une erreur sera générée.

Avec ces deux étapes, si cela ne fonctionne pas non plus, essayez de supprimer la collection et créer à nouveau.