Мы изучаем Mongo для нового веб-сайта и хотим, чтобы ни один пользователь не зарегистрировался с одним и тем же адресом электронной почты, поэтому необходим уникальный индекс в поле электронной почты.
Поддерживается ли это в защищенной среде Монго? Документация Mongo утверждает, что поддерживаются уникальные индексы, но не упоминает шарды.
http://www.mongodb.org/display/DOCS/Indexes#Indexes-UniqueIndexes
Из документации:
Вы можете использовать опцию {unique: true}, чтобы обеспечить Индекс обеспечивает уникальность, пока уникальный индекс является префиксом ключ осколка. (примечание: до версии 2.0 это работало, только если коллекция пуста).
{unique: true}
http://www.mongodb.org/display/DOCS/Configuring+Sharding
Это имеет интуитивный смысл, поскольку у mongodb нет способа проверить уникальность между осколками, если только ключ осколка не дает вам такие гарантии уникальности между осколками «бесплатно».
Мы делаем
if( $exists = $mongo_UserCollection->findOne( $desiredEmail ) ) { throw new User_Exception( 'Email address in use.' ); }