Můžete definovat index v dílčím poli e-mailu pomocí sady { unique:true }. Tím zabráníte uložení více kopií e-mailové adresy do sbírky.
Řekněme například, že vaše dokumenty vypadají nějak takto:
db.users.findOne() =>
{
"name" : "xxxx",
"emails" : [
{ address: "[email protected]", validated: false },
{ address: "[email protected]", validated: true }
]
}
V poli email.address můžete definovat jedinečný index takto:
db.users.ensureIndex(['emails.address',1], {unique: true})
Nyní se zobrazí chyba, pokud se pokusíte vložit stejnou e-mailovou adresu dvakrát. Pomůže vám také optimalizovat vyhledávání uživatelů podle jejich e-mailové adresy, což bude ve vaší aplikaci v určitém okamžiku užitečné.