如何使用户的电子邮件在 mongoDB 中唯一?
How to make user's email unique in mongoDB?
我正在收集用户数据。这将是非常基本的,包括用户的电子邮件、用户的密码(散列)和一个字符串数组。
{
email: 'user@example.com',
password: 'password hash',
arr: []
}
我想确保不能有两个具有相同 email
的插入。
我读到 mongoDB 的 _id
默认是唯一的,它使用一些特殊的数据结构来提高性能。
如何确保 email
保持唯一性,如果可能,我能否利用 _id
字段提供的性能优势?
编辑:我还想确保 email
没有 null
值,并且没有不包含 email
字段的文档。
使用unique关键字,或者直接将_id值设为email。
db.collection.createIndex( { email: 1 }, { unique: true } )
您可以通过为您的电子邮件字段创建唯一索引来实现。
http://docs.mongodb.org/manual/tutorial/create-a-unique-index/
Mongodb ensureIndex
已 deprecated,请改用 createIndex
。
db.collection.createIndex( { email: 1 }, { unique: true } )
我正在收集用户数据。这将是非常基本的,包括用户的电子邮件、用户的密码(散列)和一个字符串数组。
{
email: 'user@example.com',
password: 'password hash',
arr: []
}
我想确保不能有两个具有相同 email
的插入。
我读到 mongoDB 的 _id
默认是唯一的,它使用一些特殊的数据结构来提高性能。
如何确保 email
保持唯一性,如果可能,我能否利用 _id
字段提供的性能优势?
编辑:我还想确保 email
没有 null
值,并且没有不包含 email
字段的文档。
使用unique关键字,或者直接将_id值设为email。
db.collection.createIndex( { email: 1 }, { unique: true } )
您可以通过为您的电子邮件字段创建唯一索引来实现。
http://docs.mongodb.org/manual/tutorial/create-a-unique-index/
Mongodb ensureIndex
已 deprecated,请改用 createIndex
。
db.collection.createIndex( { email: 1 }, { unique: true } )