MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Eindeutiger MongoDB-Index für Array-Elemente in mehreren Dokumenten (nicht in verschachtelten Dokumenten)

Dazu müssen Sie ein paar Dinge ändern.

Zunächst einmal muss Ihr Schema ein index sein so:

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

Und fügen Sie in Ihrer Verbindungsoption useCreateIndex: true hinzu . Zum Beispiel habe ich:

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

await mongoose.connect(uri, mongooseOpts);

Wenn Sie dann versuchen, eine doppelte Telefonnummer hinzuzufügen, wird ein Fehler ausgegeben.

Wenn auch diese beiden Schritte nicht funktioniert haben, versuchen Sie, die collection zu entfernen und neu erstellen.