这个答案是晚了,但其他答案似乎有点…在可靠性和事实信息薄弱,所以我会尝试补救一点。
But for some reason mongodb set limit 24000 for the number of namespaces in the database,
这只是默认设置。是的,有一个默认设置。
但是,对于命名空间文件(http://docs.mongodb.org/manual/reference/limits/#Size%20of%20Namespace%20File)的大小有2GB的最大限制。这给了大约300万个命名空间,在大多数情况下,这是非常令人印象深刻的,我不确定如果许多人会很快达到这个极限。
没有真正的原因为什么MongoDB实现16MB的默认为它的nssize,据我所知,我从来没有听说过“不打扰用户的每一个细节”的座右铭,所以我不买那个。
我认为,在我看来,MongoDB隐藏这个的主要原因是因为即使,如文档所述:
Distinct collections are very important for high-throughput batch processing.
使用多个集合作为一种手段来缩放垂直而不是水平穿过集群,正如MongoDB的设计,被认为是(常常)大规模网站的糟糕的做法;因为这样的12K集合通常被认为是人们永远不会,永远不应该确定的东西。