限制

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。
一个片键大小不能超过512字节。

Mongodb数据库最大支持多大数据量_第1张图片