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

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

Комментарии

comments powered by Disqus