MongoDB tut dies wahrscheinlich, um sich zu verteidigen. Wenn Sie dropDups
Im falschen Feld könnten Sie den gesamten Datensatz abspritzen und die DB mit Löschvorgängen sperren (die "so teuer" sind wie Schreibvorgänge).
Die erste Frage ist also, warum Sie einen eindeutigen Index für die id
erstellen Feld?
MongoDB erstellt eine Standard-_id
Feld, das automatisch eindeutig ist und indexiert. Standardmäßig füllt MongoDB die _id
mit einer ObjectId
, Sie können dies jedoch mit einem beliebigen Wert überschreiben. Wenn Sie also einen fertigen Satz von ID-Werten haben, können Sie diese verwenden .
Wenn Sie die Werte nicht erneut importieren können, kopieren Sie sie in eine neue Sammlung, während Sie id
ändern in _id
. Sie können dann die alte Sammlung löschen und die neue umbenennen. (Beachten Sie, dass Sie eine Reihe von "Duplicate-Key-Fehlern" erhalten, stellen Sie sicher, dass Ihr Code sie abfängt und ignoriert )