数据文件确实只能存储2GB,但是那是单个的数据文件。操作系统是32位还是64位是针对内存的,而存储在硬盘里的数据文件是跟操作系统没有直接关系的(跟磁盘的存储格式以及文件管理系统有关)。
32位的操作系统只能访问到3点多G的内存空间,而mongodb是内存数据库,在mode模式为非安全情况下,mongo数据库的数据是存储在内存中的。而监狱32位操作系统访问内存的限制,所以在启动mongod时,会有提示32位操作系统的警告提示。
但是mongodb不会那么笨的,在磁盘上存储的数据文件,mongo会自动进行文件划分;但是这个划分并不是存满后就分出来,是按照一定的索引规则进行文件划分的。所以你看到的,如果你的数据库是大于2G的,你看到的可能是更多被划分的文件。