Я пытаюсь создать несколько уникальных индексов в коллекции users
, которые также являются разреженными.
Пример использования: разрешить пользователю регистрироваться по телефону или электронной почте
Проблема: Mongo db позволяет создавать такие индексы, и приложение работает должным образом при подключении к реальному экземпляру mongo 3.2. Однако с появлением космоса электронная почта становится уникальным, но не редким полем.
Есть ли способ достичь этого варианта использования с космосом через API mongodb? т.е. не прибегая к проверке уникальности с помощью запроса на выборку перед каждой вставкой.
Попытки: просмотр документации космоса мало что показал. Они утверждают, что поддерживают API mongo 3.2, и разреженные индексы не упоминаются в предостережениях. Создание уникально-разреженного индекса с createIndex
не приведет к ошибке, а только создаст уникальный индекс. Создание еще одного аналогичного индекса в другом поле не вызывает ошибки, но даже не создает уникальный индекс. Создает нормальный индекс.
Обновление: получил ответ от службы поддержки Azure:
В настоящее время мы не поддерживаем разреженные индексы. Вы можете сделать это, то есть создать составной индекс со свойством телефона и электронной почты.
Я не думаю, что составной индекс поможет мне с моим вариантом использования, поскольку я хочу, чтобы и телефон, и электронная почта были глобально уникальными в коллекции, а не только их комбинация.