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

Mongodb undgå duplikerede poster

Brug et indeks med {unique:true} mulighed.

// everyone's username must be unique:
db.users.createIndex({email:1},{unique:true});

Du kan også gøre dette på tværs af flere felter. Se dette afsnit i dokumenterne for flere detaljer og eksempler.

Et unikt indeks sikrer, at de indekserede felter ikke gemmer duplikerede værdier; dvs. håndhæver unikhed for de indekserede felter. Som standard opretter MongoDB et unikt indeks på _id-feltet under oprettelsen af ​​en samling.

Hvis du ønsker null værdier, der skal ignoreres fra den unikke nøgle, så skal du også gøre indekset sparsomt (se her ), ved også at tilføje sparse mulighed:

// everyone's username must be unique,
//but there can be multiple users with no email field or a null email:
db.users.createIndex({email:1},{unique:true, sparse:true});

Hvis du vil oprette indekset ved hjælp af MongoDB Java Driver. Prøv:

Document keys = new Document("email", 1);
collection.createIndex(keys, new IndexOptions().unique(true));


  1. Hvorfor anbefales det ikke at bruge lagrede funktioner på serversiden i MongoDB?

  2. hvordan man bruger nestjs redis microservice?

  3. HDFS Tutorial – En komplet introduktion til HDFS for begyndere

  4. Konfiguration af advarsler på MongoDB-metrics