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.