Вы можете определить индекс в подполе электронной почты с установленным {unique: true}.Это предотвратит сохранение нескольких копий адреса электронной почты в коллекции.
Например, предположим, что ваши документы выглядят примерно так:
db.users.findOne() =>
{
"name" : "xxxx",
"emails" : [
{ address: "one@domain.com", validated: false },
{ address: "two@domain.com", validated: true }
]
}
Вы можете определить уникальный индекс в поле email.address следующим образом:
db.users.ensureIndex(['emails.address',1], {unique: true})
Теперь вы получите сообщение об ошибке, если вы попытаетесь вставить один и тот же адрес электронной почты дважды.Это также поможет вам оптимизировать поиск пользователей по их электронным адресам, которые в определенный момент будут полезны в вашем приложении.