在Mongodb中,是否支持共享环境的唯一索引?

时间:2011-12-31 22:24:19

标签: mongodb indexing sharding mongodb-indexes

我们正在探索Mongo的新网站,我们希望确保没有两个用户使用相同的电子邮件地址注册,因此,必须在电子邮件字段中添加唯一索引。

在分片式Mongo环境中是否支持此功能? Mongo文档声明支持唯一索引,但没有提及分片。

http://www.mongodb.org/display/DOCS/Indexes#Indexes-UniqueIndexes

2 个答案:

答案 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.' );
}