gpt4 book ai didi

mongodb - 在 MongoDB 中存储 null 与根本不存储 key

转载 作者:IT老高 更新时间:2023-10-28 11:02:32 27 4
gpt4 key购买 nike

在我看来,当您创建 Mongo 文档并有一个字段 {key: value} 有时不会有值时,您有两个选择:

  1. 写入 {key: null} 即在字段中写入 null 值
  2. 根本不要将 key 存储在该文档中

这两个选项都很容易查询,一个是查询 {key : null},另一个是查询 {key : {$exists : false}}

我真的想不出这两个选项之间有什么区别会对应用场景产生任何影响(除了选项 2 的存储空间稍少)。

谁能告诉我是否有任何理由让人们更喜欢这两种方法中的任何一种,为什么?

编辑

在问了这个问题后,我还想到索引在这两种情况下的行为可能不同,即可以为选项 2 创建一个稀疏索引。

最佳答案

确实,您还有第三种可能性:key: ""(空值)

你忘记了关于空值的特殊性。查询key: null 将检索所有 key 为 null 的文档,其中 key 不存在。

当对 $exists:false 的查询将只检索字段键不存在的文档。

要回到您的确切问题,这取决于您的查询和数据代表的内容。如果您需要保留它,例如,用户设置了一个值然后取消设置它,您应该将该字段保留为 null 或空。如果您不需要,您可以删除此字段。

关于mongodb - 在 MongoDB 中存储 null 与根本不存储 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12403240/

27 4 0
文章推荐: javascript - 如何将文本附加到 `
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com