MongoDB 灵活文档的优势
- 灵活库/集合命名及字段增减
- 同一字段可存储不同类型数据
- Json 文档可多层次嵌套文档
- 对于开发而言最自然的表达
MongoDB 灵活文档的烦恼
- 数据库集合字段名千奇百怪
- 同一字段数据类型各不一样
- 业务异常可能写入“脏”数据
1.1 库命名规范
- 不能为空字符串 ""
- 不能以 $ 开头
- 不能包含 . 号 /\
- 数据库名大小写敏感
- 数据库名最长为 64 个字符
- 不能与系统库相同
最佳实践
- 数据库命名只包含小写英文字符加下划线 _
- 数据库名含多个单词考虑缩小并以下划线连接
- 如:package_manager
1.2 集合名规范
- 不能为空字符串 ""
- 不能以 system. 系统集合名开头
- 不因包含 ~!@#%^&*()-+
最佳实践
- 集合命名只包含下划线和小写英文字母
- 如: students_books
1.3 Bson 单文档的大小及嵌套限制
- 单文档不超过16 MB
- 嵌套不能超过100 层
如果单条记录超过 16 M 怎么办?
- 第一种办法:先处理后存储。可以先做压缩,或者也可以对字符进行先哈希,然后再存储,这样大概率就不会超过 16 MB。
- 第二种方法:通常来说 16 MB 的记录都可以直接写到文本文件里面,然后再将文件存到 MongoDB GridFS 里面或者先业务层处理