Du kan definere et indeks i e-mail-underfeltet med { unik:sand } indstillet. Dette forhindrer, at flere kopier af e-mailadressen gemmes i samlingen.
Lad os f.eks. sige, at dine dokumenter ser sådan ud:
db.users.findOne() =>
{
"name" : "xxxx",
"emails" : [
{ address: "[email protected]", validated: false },
{ address: "[email protected]", validated: true }
]
}
Du kan definere et unikt indeks i feltet email.address som dette:
db.users.ensureIndex(['emails.address',1], {unique: true})
Nu vil du få en fejlmeddelelse, hvis du forsøger at indsætte den samme e-mailadresse to gange. Det vil også hjælpe dig med at optimere at søge efter brugere ud fra deres e-mailadresse, hvilket helt sikkert vil være nyttigt i din app på et eller andet tidspunkt.