3

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

1) 描述字段为空字符串的 JSON(将来会填充):

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

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

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

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

4

2 回答 2

4

有疑问时

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

上面的引用是指代码,但它也适用于这里。我可以想到一些您将来会后悔添加空字符串字段的情况。例如。弃用该领域,它不再使用,使人们感到困惑,并且只是占用空间。另外,请参阅MongoDB 文档:查询和空值

于 2012-11-06T19:28:53.597 回答
1

一种方法是忽略不适用于相关文档/聚合的字段。像 MongoDB 这样的文档数据库没有模式,并且本机支持这一点。然后,您可以使用$exists查询运算符。但是,如果您的用例对依赖于存在的查询很重,那么它是非性能的,并且提到了替代设计

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

于 2012-11-06T19:47:41.903 回答