Хранение нулей против хранения ключей вообще в MongoDB
Мне кажется, что когда вы создаете монго документ и имеете поле{key, value}
который иногда не будет иметь значения, у вас есть два варианта:
{key, null}
i.e. write null value in the field
Don't store the key in that document at all
Оба варианта легко запрашиваются, в одном из которых вы запрашиваете{key : null}
а другой вы запрашиваете{key : {$exists : false}}
.
Я действительно не могу думать о каких-либо различиях между этими двумя вариантами, которые могли бы оказать какое-либо влияние в сценарии приложения (за исключением того, что у варианта 2 немного меньше места для хранения).
Может кто-нибудь сказать мне, если есть какие-либо причины, по которым один из них предпочел бы один из двух подходов, а почему?
EDIT
После того, как я задал вопрос, мне также пришло в голову, что индексы могут вести себя по-разному в двух случаях, т. Е. Для варианта 2 может быть создан разреженный индекс, но я все еще пытаюсь сравнить и понять, какими будут полные соображения относительно индекса в двух подходах. ,