推荐答案
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
等作为集合名称。