我们正在探索Mongo的新网站,我们希望确保没有两个用户使用相同的电子邮件地址注册,因此,必须在电子邮件字段中添加唯一索引。
在分片式Mongo环境中是否支持此功能? Mongo文档声明支持唯一索引,但没有提及分片。
http://www.mongodb.org/display/DOCS/Indexes#Indexes-UniqueIndexes
答案 0 :(得分:5)
来自文档:
您可以使用
{unique: true}
选项来确保底层证券 index只要唯一索引是前缀,就强制执行唯一性 分片键。 (注意:在版本2.0之前,这只适用于 收集是空的。)
http://www.mongodb.org/display/DOCS/Configuring+Sharding
这很直观,因为mongodb无法检查分片的唯一性,除非分片键为您提供“免费”的交叉分片唯一性保证。
答案 1 :(得分:0)
我们
if( $exists = $mongo_UserCollection->findOne( $desiredEmail ) )
{
throw new User_Exception( 'Email address in use.' );
}