【发布时间】:2012-09-06 08:42:12
【问题描述】:
在我看来,当您创建 Mongo 文档并有一个字段 {key: value} 有时不会有值时,您有两种选择:
- 写入
{key: null},即在字段中写入空值 - 根本不要将密钥存储在该文档中
这两个选项都很容易查询,其中一个查询{key : null},另一个查询{key : {$exists : false}}。
我真的想不出这两个选项之间有什么区别会对应用场景产生任何影响(除了选项 2 的存储空间稍少)。
谁能告诉我是否有任何理由让人们更喜欢这两种方法中的任何一种,为什么?
编辑
在问了这个问题后,我也想到索引在这两种情况下的行为可能不同,即可以为选项 2 创建一个稀疏索引。
【问题讨论】:
-
就其价值而言,“稍微减少存储空间”在大规模情况下可能更重要,尤其是当您谈论内存中工作集的大小时。
标签: mongodb mongodb-query document-database nosql