在我看来,当您创建一个 Mongo 文档并且有一个{key: value}
有时不会有值的字段时,您有两个选择:
- 写入
{key: null}
即在字段中写入空值 - 根本不要将密钥存储在该文档中
这两个选项都很容易查询,一个是您查询,{key : null}
另一个是您查询{key : {$exists : false}}
。
我真的想不出这两个选项之间的任何差异会对应用程序场景产生任何影响(除了选项 2 的存储量略少)。
谁能告诉我是否有任何理由更喜欢这两种方法中的任何一种,为什么?
编辑
在问了这个问题之后,我还想到索引在这两种情况下的行为可能不同,即可以为选项 2 创建一个稀疏索引。