推荐答案
MongoDB 的集合命名规范如下:
- 集合名称不能为空字符串。
- 集合名称不能包含空字符(即
\0)。 - 集合名称不能以
system.开头,因为这是 MongoDB 内部保留的前缀。 - 集合名称不能包含
$符号,除非是用于特殊用途(如$cmd集合)。 - 集合名称长度限制:集合名称的长度不能超过 64 个字符。
- 集合名称区分大小写:集合名称是区分大小写的,因此
myCollection和mycollection是两个不同的集合。 - 集合名称应避免使用保留字:虽然 MongoDB 允许使用某些保留字作为集合名称,但为了避免潜在的问题,建议避免使用。
本题详细解读
1. 集合名称不能为空字符串
MongoDB 要求集合名称必须是一个非空字符串。空字符串会导致创建集合失败。
2. 集合名称不能包含空字符
空字符(\0)在 MongoDB 中被视为字符串的结束符,因此集合名称中不能包含空字符。
3. 集合名称不能以 system. 开头
system. 是 MongoDB 内部保留的前缀,用于系统集合(如 system.users、system.indexes 等)。用户自定义的集合名称不能以 system. 开头,以避免与系统集合冲突。
4. 集合名称不能包含 $ 符号
$ 符号在 MongoDB 中通常用于操作符(如 $set、$inc 等),因此集合名称中不能包含 $ 符号。唯一的例外是 $cmd 集合,它是 MongoDB 内部使用的集合。
5. 集合名称长度限制
MongoDB 对集合名称的长度有限制,最多不能超过 64 个字符。超过这个长度的集合名称会导致创建集合失败。
6. 集合名称区分大小写
MongoDB 的集合名称是区分大小写的。这意味着 myCollection 和 mycollection 是两个不同的集合。在命名集合时,应注意大小写的一致性。
7. 集合名称应避免使用保留字
虽然 MongoDB 允许使用某些保留字作为集合名称,但为了避免潜在的问题,建议避免使用这些保留字。例如,避免使用 db、admin、local 等作为集合名称。