MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

perché DuplicateKeyError:E11000 indice di errore della chiave duplicata:test.test.$notification_1 chiave duplicata:{ :null }

Probabilmente hai già un documento nella tua collezione che ha una notification: NULL o un documento che non ha il campo di notifica impostato. Se un campo non è impostato, viene considerato nullo. Poiché un indice univoco consente un solo valore per campo, non è possibile avere due documenti privi di un set di campi. Puoi aggirare questo problema anche usando lo sparse opzione durante la creazione di un indice. Qualcosa del genere dovrebbe funzionare (dopo aver eliminato l'indice già esistente su notification :

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

Vedi anche:indici sparsi e valori nulli in mongo