Можете да дефинирате индекс в подполето на имейл с { unique:true } set. Това ще предотврати съхраняването на множество копия на имейл адреса в колекцията.
Да приемем например, че вашите документи изглеждат по следния начин:
db.users.findOne() =>
{
"name" : "xxxx",
"emails" : [
{ address: "[email protected]", validated: false },
{ address: "[email protected]", validated: true }
]
}
Можете да дефинирате уникален индекс в полето email.address по следния начин:
db.users.ensureIndex(['emails.address',1], {unique: true})
Сега ще получите грешка, ако се опитате да въведете един и същ имейл адрес два пъти. Освен това ще ви помогне да оптимизирате търсенето на потребители по техния имейл адрес, което със сигурност ще бъде полезно в приложението ви в даден момент.