sql >> Base de Datos >  >> NoSQL >> MongoDB

por qué DuplicateKeyError:E11000 índice de error de clave duplicada:test.test.$notification_1 clave duplicada:{:null}

Probablemente ya tenga un documento en su colección que tenga notification: NULL o un documento que no tiene el campo de notificación establecido. Si un campo no está configurado, se considera nulo. Debido a que un índice único solo permite un valor por campo, no puede tener dos documentos que no tengan un conjunto de campos. Puede evitar esto utilizando también sparse opción al crear un índice. Algo como esto debería funcionar (después de eliminar el índice ya existente en notification :

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

Consulte también:índices dispersos y valores nulos en mongo