Armazenando null vs não armazenando a chave no MongoDB
Parece-me que quando você está criando um documento do Mongo e tem um campo{key, value}
o que às vezes não tem valor, você tem duas opções:
{key, null}
ou seja, escreva um valor nulo no campoNão armazene a chave nesse documento em tudoAmbas as opções são facilmente consultáveis, em uma que você consulta{key : null}
e o outro que você consulta{key : {$exists : false}}
.
Eu não consigo pensar em nenhuma diferença entre as duas opções que teria algum impacto em um cenário de aplicativo (exceto que a opção 2 tem um pouco menos de armazenamento).
Alguém pode me dizer se há alguma razão para alguém preferir uma das duas abordagens à outra e por quê?
EDITAR
Depois de fazer a pergunta, também me ocorreu que os índices podem se comportar de maneira diferente nos dois casos, ou seja, um índice esparso pode ser criado para a opção 2, mas ainda estou tentando comparar e entender quais serão as considerações completas do índice nas duas abordagens. .