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

Referenzen vs. Einbettungen in MongoDB

Sie können einen Index für das E-Mail-Unterfeld mit der Einstellung { unique:true } definieren. Dadurch wird verhindert, dass mehrere Kopien der E-Mail-Adresse in der Sammlung gespeichert werden.

Angenommen, Ihre Dokumente sehen etwa so aus:

db.users.findOne() => 
{ 
  "name" : "xxxx", 
  "emails" : [ 
     { address: "[email protected]", validated: false },
     { address: "[email protected]", validated: true }
  ]
}

Sie können einen eindeutigen Index für das Feld email.address wie folgt definieren:

db.users.ensureIndex(['emails.address',1], {unique: true})

Jetzt erhalten Sie eine Fehlermeldung, wenn Sie versuchen, dieselbe E-Mail-Adresse zweimal einzugeben. Es hilft Ihnen auch, die Suche nach Benutzern anhand ihrer E-Mail-Adresse zu optimieren, was in Ihrer App irgendwann nützlich sein wird.