1

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

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

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

4

2 回答 2

5

从文档中:

{unique: true}只要唯一索引是分片键的前缀,您就可以使用该选项确保基础索引强制执行唯一性。(注意:在 2.0 版之前,这仅在集合为空时才有效)。

http://www.mongodb.org/display/DOCS/Configuring+Sharding

这很直观,因为 mongodb 无法检查分片之间的唯一性,除非分片键“免费”为您提供这种跨分片唯一性保证。

于 2011-12-31T22:37:01.463 回答
0

我们的确是

if( $exists = $mongo_UserCollection->findOne( $desiredEmail ) )
{
    throw new User_Exception( 'Email address in use.' );
}
于 2012-01-11T16:13:22.797 回答