189 8069 5689

MongoDB几个问题梳理和复盘过程是怎样的

这篇文章给大家介绍MongoDB几个问题梳理和复盘过程是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联建站于2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元新化做网站,已为上家服务,为新化各地企业和个人服务,联系电话:18982081108

工作中主要负责的系统主要以MongoDB数据库为主,开发过程中积累了一些经验和实际使用case,前一段时间把相关的场景整理了一下,组织了几篇文章。

当我尝试想把这些文发布到MongoDB中文社区时,与负责人沟通后,他们提出了一些文章中有待商榷和不严谨的地方,我在这里做一个梳理和复盘修正。

关于时间存储类型的选择

《MongoDB开发系列-从数据集合的设计开始 》中写到

时间可以直接定义为格式化的时间,便于识别和查询。不必特意存储时间戳,这样方便可视化的工具查询核对。

这里的格式化的时间有歧义,会被认为是时间字符串,比如(2019-07-03 19:10:11),我的本意是想表达使用ISODate类型的时间格式存储。

时间戳和时间格式两个数据类型的存储是一个选择问题,有的人习惯使用时间戳存储,有的人习惯用时间类型存储。

建议存时间戳的认为,时间转换成字符串很方便,字符串转换成时间很不方便。还有效率的问题。

字段语义化和字段映射

字段长度尽可能的短,不宜过长。也是考虑到内存优化。

原厂专家的建议是

实际并不存在长短的问题,因为有压缩,字段名这种重复的字段压缩后可以忽略

最开始我在考虑MongoDb是基于内存和key value形式的数据库,关于【命名规范,短字符的建议】这一条,我在官方和社区都没有找到正面的回应。

官方的文档大多是以小写命名做字段定义的,所以对于这个观点 我也是在逐步否定,或者说这种做法对内存的优化并不明显,反而牺牲了字段语意化,增加了开发字段映射和沟通成本。

MongoDB几个问题梳理和复盘过程是怎样的

官方文档示例

正常的做法是:按照驼峰或者全部小写的语义化命名即可

单文档宽度

注意这种情况下,切忌文档过宽。那如何避免这种情况,我的方法是预估最大字段数,以20个字段为节点,多于20则采用嵌套document的设计方式组织document。

这是工作中的设计经验,有不严谨的地方,容易误导读者。不应该有20的这个量化数据,我的本意是,如果一级属性太多,可以整理为二级嵌套字段,仅此而已。

关于MongoDB几个问题梳理和复盘过程是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页标题:MongoDB几个问题梳理和复盘过程是怎样的
网页链接:http://cdxtjz.cn/article/jejhej.html

其他资讯