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