[英]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.