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

hvorfor DuplicateKeyError:E11000 duplicate key error index:test.test.$notification_1 dup key:{ :null }

Du har sandsynligvis allerede et dokument i din samling, som enten har notification: NULL eller et dokument, der ikke har meddelelsesfeltet indstillet. Hvis et felt ikke er angivet, betragtes det som nul. Fordi et unikt indeks kun tillader én værdi pr. felt, kan du ikke have to dokumenter, der ikke har et feltsæt. Du kan komme uden om dette ved også at bruge sparse mulighed, mens du opretter et indeks. Noget som dette burde virke (efter at have slettet det allerede eksisterende indeks på notification :

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

Se også:sparsomme indekser og nulværdier i mongo




  1. Sådan finder du dokumenter med nøjagtig de samme array-indgange som i en forespørgsel

  2. Indstilling af cache_store i en initializer

  3. Hvordan returnerer man kun specifikke felter for en forespørgsel i Spring Data MongoDB?

  4. Hvordan forespørger du *korrekt* Redis fra Tornado?