sql >> Databáze >  >> NoSQL >> MongoDB

Mongodb se vyvarujte duplicitních záznamů

Použijte index s {unique:true} možnost.

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

Můžete to také provést ve více polích. Viz tuto sekci Další podrobnosti a příklady naleznete v dokumentaci.

Jedinečný index zajišťuje, že indexovaná pole neukládají duplicitní hodnoty; tj. vynucuje jedinečnost pro indexovaná pole. Ve výchozím nastavení vytváří MongoDB během vytváření kolekce jedinečný index v poli _id.

Pokud si přejete null hodnoty, které mají být z jedinečného klíče ignorovány, pak musíte také index zřítit (viz zde ), přidáním sparse možnost:

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

Pokud chcete vytvořit index pomocí ovladače MongoDB Java Driver. Zkuste:

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


  1. Jaký je doporučený způsob spouštění indexů pomocí Mongoose?

  2. Vyberte délku řetězce v mongodb

  3. Importujte data CSV jako pole v MongoDB pomocí mongoimport

  4. Dotazování na vložené objekty v Mongoidu/rails 3 (Operátory nižší než, Min a řazení)