Ответ 1
Вы можете сделать это, создав уникальный индекс для своего поля электронной почты.
http://docs.mongodb.org/manual/tutorial/create-a-unique-index/
Скотт
Я делаю сбор пользовательских данных. Это будет довольно простой, состоящий из электронной почты пользователя, пароля пользователя (хэша) и массива строк.
{
email: '[email protected]',
password: 'password hash',
arr: []
}
Я хочу убедиться, что не может быть двух вставок с тем же email
.
Я прочитал, что _id
mongoDB по умолчанию уникален, и для повышения производительности он использует специальную структуру данных.
Как я могу убедиться, что email
остается уникальным, и, если возможно, я могу использовать преимущества производительности, предоставляемые полем _id
?
Изменить: я также хочу убедиться, что для email
нет значений null
и что нет документов, которые не содержат поля email
.
Вы можете сделать это, создав уникальный индекс для своего поля электронной почты.
http://docs.mongodb.org/manual/tutorial/create-a-unique-index/
Скотт
Используйте уникальное ключевое слово или просто сделайте значение _id электронной почтой.
db.collection.createIndex( { email: 1 }, { unique: true } )
Mongodb ensureIndex
устарел, используйте вместо него createIndex
.
db.collection.createIndex( { email: 1 }, { unique: true } )