Мне кажется, что когда вы создаете Mongo-документ и имеете поле {key, value}
, которое иногда не имеет значения, у вас есть два варианта:
- Напишите
{key, null}
, то есть напишите нулевое значение в поле - Не храните ключ в этом документе вообще
Оба параметра легко доступны для запроса, в одном запросе для {key : null}
, а другой - для {key : {$exists : false}}
.
Я не могу думать о каких-либо различиях между двумя параметрами, которые могут иметь какое-либо влияние в сценарии приложения (за исключением того, что опция 2 имеет немного меньше памяти).
Может ли кто-нибудь сказать мне, есть ли какие-либо причины, по которым вы предпочитаете один из двух подходов друг к другу, и почему?
ИЗМЕНИТЬ
После того, как я задал вопрос, мне также пришло в голову, что индексы могут вести себя по-разному в двух случаях, т.е. для варианта 2 может быть создан разреженный индекс, но я все еще пытаюсь сравнить и понять, что будут учитывать полные индексы эти два подхода.