sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb undvik dubbletter av poster

Använd ett index med {unique:true} alternativ.

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

Du kan också göra detta över flera fält. Se det här avsnittet i dokumenten för mer information och exempel.

Ett unikt index säkerställer att de indexerade fälten inte lagrar dubbletter av värden; d.v.s. tvingar fram unikhet för de indexerade fälten. Som standard skapar MongoDB ett unikt index på _id-fältet under skapandet av en samling.

Om du vill ha null värden som ska ignoreras från den unika nyckeln, då måste du också göra indexet sparsamt (se här ), genom att även lägga till sparse alternativ:

// 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});

Om du vill skapa indexet med MongoDB Java Driver. Försök:

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


  1. Automatisera MongoDB med SaltStack

  2. Redis sentinels i samma servrar som master/slave?

  3. Hur definierar man TTL för redis-strömmar?

  4. Använder StackExchange.Redis-klient med Redis-kluster