🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **限制** >MongoDB通常适用于64位操作系统,32位系统只能寻址4GB内存,意味着数据集包含元数据和存储达到4GB,Mongodb就无法存储额外的数据了,强烈建议32位系统使用Mongodb可以自己测试使用,生产环境一地使用64位操作系统。 最大文档大小有助于确保单个文档不会使用过多的RAM或在传输过程中占用过多的带宽。要存储大于最大大小的文档,MongoDB提供了GridFS API。 MongoDB支持BSON文档嵌套的级别不超过100。 **数据库命名限制** 由于数据库名称在MongoDB中*不区分大小写*,因此数据库名称不能仅因字符的大小写而不同。 对于在Windows上运行的MongoDB部署,数据库名称不能包含以下任何字符: > /\. "$*<>:|? 对于在Unix和Linux系统上运行的MongoDB部署,数据库名称不能包含以下任何字符: > /\. "$ 数据库名称也不能包含空字符。数据库名称不能为空,并且必须少于64个字符。 **集合命名限制** 集合名称应以下划线或字母字符开头,并且*不能*: > 包含`$`。 > 是一个空字符串(例如`""`)。 > 包含空字符。 > 以`system.`前缀开头。(保留供内部使用) 集合名称空间的最大长度为120个字节,其中包括数据库名称,点(`.`)分隔符和集合名称(即`<database>.<collection>`) **字段命名限制** >字段名称**不能**包含`null`字符。 >顶级字段名称**不能**以美元符号(`$`)字符开头。 其他情况,从MongoDB 3.6开始,服务器允许存储包含点(即`.`)和美元符号(即`$`)的字段名称。 mognodb 不支持重复的字段名称,即使程序插入成功,没有抛出异常,驱动程序会导致在插入之前默认删除重复值。 **命名空间** >集合名称空间的最大长度为120个字节,其中包括数据库名称,点(`.`)分隔符和集合名称(即`<database>.<collection>`) 在版本3.0中更改。 >对于MMAPv1,名称空间的数量限于名称空间文件的大小除以628,一个16 MB的名称空间文件可以支持大约24,000个名称空间。每个集合和索引都是一个名称空间。 WiredTiger存储引擎是*不是*受到这个限制。 这也是为什么在MongoDB4.2从4.2版开始,删除不推荐使用的MMAPv1存储引擎的原因。 **副本集** >在Mongodb3.0中副本集成员最最多支持50个,也就是说副本集做大支持50个节点,副本集每个节点数据支持32T,副本集每个实例建议数据不要超过4T,数据量大备份恢复时间会很长。 **存储限制** 我们通常分片会使用默认的chunk大小为64M,如果我们的分片key (片键)values值是512字节,分片节点支持最大32768个也就是最大支持数据量为32768TB。 分片key不能超过512字节。 ![](https://img.kancloud.cn/ca/7c/ca7c6fb314c2d7023e3d8e6faea34e88_1462x790.png)