一、数据库的使用规范

数据库通过名字表示。关于数据库的命名需要注意以下几点:

1、编码格式必须为 UTF-8 字符,数据库名不可以出现空字符串,即 "";

2、只能使用 ASCII 码表中的字母和数字,禁止使用除下划线(_)以外的特殊字符;

3、数据库名称建议全部小写

4、数据库名称长度限制为 64 个字节;

5、数据库名称不可与系统保留的数据库名称相同,即 admin、local 和 config 数据库

6、建议不要使用数字开头的数据库名称,建议数据库命名规则为 db_xxxx,即见名知意的名称

二、集合使用规范

基于上面 MongoDB 集合的命名规范,以及实际开发角度提出五条集合命名建议:

1、编码格式必须为 UTF-8 字符,不可以出现空字符串,即 "";

2、集合命名不可含有 \0 字符,即空字符,这个字符表示集合名称的结尾;

3、不能出现以 “System.”开头的集合名称,这 -是为系统集合保留的前缀;

4、集合命名不可包含字符 “$”;

5、集合名称的长度限制为 64 个字节

6、建议不要使用除 _(下划线)和 .(点)以外的特殊字符;

7、建议集合名称全部小写;

8、建议不要使用数字开头的集合名称;

9、为了避免库级锁带来的问题,尽量对写入较大的集合使用 “单库单集合”的结构,对于新增业务尽量创建新库,而不是在现有库中创建新集合;

10、建议集合命名规则为 t_xxxx;

11、使用 “.”来分隔不同命名空间的子集合,例如一个博客可能包含两个子集合,即 blog.posts 和 blog.authors,而 blog 本身可以不存在

三、文档使用规范

1、文档中的键不能含有 “\0”字符,即空字符;

2、文档中的键禁止使用任何除下划线 “”以外的特殊字符,并且开头不建议使用 "";

3、文档中的键建议全部为小写;

4、文档中的键不建议以数字开头;

5、不建议自定义文档中的 “_id”值

6、尽量将相似的文档放在同一个集合中,将不同类型的文档分散在不同的集合中,这样可以提高索引的利用率;

7、建议不要存储过长的字符串,如果这个字段为查询条件,那么确保该字段的值不超过 1KB,因为 MongoDB 索引仅支持 1KB 以内的字段;

8、建议若业务上对于存放数据大小写不敏感,则使用全部大写/小写存放(或增加一个统一大小写的辅助字段);

9、建议不要使用数组字段作为查询条件;

10、同一文档中,不可以存在相同名称的键;