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

warum DuplicateKeyError:E11000 doppelter Schlüsselfehlerindex:test.test.$notification_1 doppelter Schlüssel:{ :null }

Wahrscheinlich haben Sie bereits ein Dokument in Ihrer Sammlung, das entweder notification: NULL hat oder ein Dokument, für das das Benachrichtigungsfeld nicht festgelegt ist. Wenn ein Feld nicht festgelegt ist, wird es als null betrachtet. Da ein eindeutiger Index nur einen Wert pro Feld zulässt, können Sie nicht zwei Dokumente haben, die keinen Feldsatz haben. Sie können dies umgehen, indem Sie auch den sparse verwenden Option beim Erstellen eines Indexes. So etwas sollte funktionieren (nachdem der bereits vorhandene Index auf notification gelöscht wurde :

self.db_database[co_name].ensure_index(('notification'),unique=True,sparse=True)

Siehe auch:sparse indexes and null values ​​in mongo