Так как MongoDB является документно-ориентированной СУДБ, то структура документов в коллекции может быть различная. Это может доставить неудобства при индексировании. Например, если мы создадим уникальный индекс по полю name, и добавим первый документ без поля name – его значение будет принято за null и добавление произойдёт.

Если мы попытаемся добавить второй документ с пустым полем name, то ничего из этого не выйдет. Потому что индекс значение для этого поле будет считаться за nullnull уже есть в коллекции).

Чтобы разрешить подобную ситуацию в MongoDB существуют Sparce-индексы.

Sparce-индекс по полю name добавит в индекс запись только если у неё есть поле name. Если поле name не установлено, то запись не будет индексироваться. И вышеописанная ситуация не возникнет.

Комментарии