Du kan definiera ett index i e-postunderfältet med { unikt:sant } inställt. Detta förhindrar att flera kopior av e-postadressen lagras i samlingen.
Låt oss till exempel säga att dina dokument ser ut ungefär så här:
db.users.findOne() =>
{
"name" : "xxxx",
"emails" : [
{ address: "[email protected]", validated: false },
{ address: "[email protected]", validated: true }
]
}
Du kan definiera ett unikt index i fältet email.address så här:
db.users.ensureIndex(['emails.address',1], {unique: true})
Nu får du ett felmeddelande om du försöker infoga samma e-postadress två gånger. Det kommer också att hjälpa dig att optimera leta upp användare genom deras e-postadress, vilket kommer att vara användbart i din app någon gång.