DBAtlas · Atlas für Datenbankbetrieb

E11000: E11000 duplicate key error collection (Fehler wegen doppelten Schlüssels)

MongoDB

Was bedeutet das?

Ein Insert oder Update hat versucht, einen in der Collection bereits vorhandenen Wert in durch einen Unique Index geschützte Feld(er) zu schreiben. MongoDB lehnt den doppelten Schlüssel ab.

Ursache

Eine _id-Kollision, zweites Schreiben desselben Werts in ein Feld mit Unique Index, eine Race Condition beim Upsert oder kollidierende Null-Werte mehrerer Dokumente in einem Unique Index (nicht sparse).

Lösung

Prüfe vor dem Schreiben, ob das Dokument existiert, oder verwende einen Upsert: db.collection.updateOne(filter, {$set:{...}}, {upsert:true}). Sieh dir den Indexnamen und den dup-key-Wert in der Fehlermeldung an. Ist Eindeutigkeit eigentlich nicht nötig, entferne den Index; sind Nulls das Problem, verwende einen Partial/Sparse Index. Fange den Fehler in der Anwendung ab und wiederhole den Vorgang oder melde ihn dem Benutzer.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank