MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongodb vermeidet doppelte Einträge

Verwenden Sie einen Index mit dem {unique:true} Option.

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

Sie können dies auch über mehrere Felder hinweg tun. Siehe diesen Abschnitt in der Dokumentation für weitere Details und Beispiele.

Ein eindeutiger Index stellt sicher, dass die indizierten Felder keine doppelten Werte speichern; d.h. erzwingt Eindeutigkeit für die indizierten Felder. Standardmäßig erstellt MongoDB während der Erstellung einer Sammlung einen eindeutigen Index für das Feld _id.

Wenn Sie null wünschen Werte aus dem eindeutigen Schlüssel zu ignorieren, dann müssen Sie auch den Index spärlich machen (siehe hier ), indem Sie auch den sparse hinzufügen Möglichkeit:

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

Wenn Sie den Index mit dem MongoDB-Java-Treiber erstellen möchten. Versuchen Sie:

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