繁体   English   中英

MongoDB文档:空值还是省略对?

[英]MongoDB documents: empty value or omit pair altogether?

我在项目中第一次使用MongoDB,我不太确定文档中空白/未设置值的推荐方法是什么。 当您拥有将来可能具有值的对时,这两种方法中的哪一种更合适:

1)JSON,其中description字段是一个空字符串(并将在以后填充):

{
    "username": "jamies",
    "shortName": "camping",
    "setName": "Camping on Stevens",
    "description": ""
}

2)或者,省略描述字段的JSON(将来会添加):

{
    "username": "jamies",
    "shortName": "camping",
    "setName": "Camping on Stevens"
}

显然,第二种方法将节省磁盘空间,但也不会指示哪些值为null。 我很想了解Mongo开发人员/ DBA推荐/规定的内容,以及在查询或更新期间是否考虑过该方法。

有疑问时

从简洁开始。 根据测试要求增加其他尺寸。 杰夫·阿特伍德

上面的引用是指代码,但它也适用于此处。 我可以想到一些情况,你会后悔在将来添加一个空字符串字段。 例如。 弃用该领域,它不再被使用,令人困惑,只是占用空间。 另请参阅MongoDB Docs:查询和空值

一种方法是忽略不适用于所讨论的文档/聚合的字段。 像MongoDB这样的文档数据库是模式较少的,并且原生支持它。 然后,您可以使用$ exists查询运算符。 但是,如果您的用例在依赖于存在的查询上很重,那么它就是非高效的并且提到了替代设计

另一种方法是使用null来表示缺少值。 我认为建议使用null而不是添加元素并提供空字符串作为值。 这里有点类似的讨论XML,这是什么:null或空元素?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM