Този отговор е закъснял, но другите отговори изглеждат малко...слаби по отношение на надеждност и фактическа информация, така че ще се опитам да поправя това малко.
Но по някаква причина mongodb зададе ограничение 24000 за броя на пространствата от имена в базата данни,
Това е просто настройката по подразбиране. Да, има настройка по подразбиране.
На страницата с ограничения пише, че 24000 е ограничението ( http://docs.mongodb.org/manual/reference/limits/#Number%20of%20Namespaces ), сякаш няма начин да се разшири това, но има.
Въпреки това има максимално ограничение за това колко голям може да бъде файлът на пространството от имена ( http://docs.mongodb.org/manual/reference/limits/#Size%20of%20Namespace%20File ), което е 2GB. Това ви дава приблизително 3 милиона пространства за имена, с които да играете в повечето случаи, което е доста впечатляващо и не съм сигурен дали много хора ще достигнат този лимит бързо.
Можете да промените стойността по подразбиране, за да надхвърли 16MB, като използвате параметъра nssize или в рамките на конфигурацията ( http://docs.mongodb.org/manual/reference/configuration-options/#nssize ) или по време на изпълнение, като манипулирате използваната команда да стартирате MongoDB ( http://docs.mongodb.org/manual/reference/mongod/#cmdoption-mongod--nssize ).
Няма реална причина MongoDB да внедрява 16MB по подразбиране за своя nssize, доколкото знам, никога не съм чувал за мотото „не притеснявайте потребителя с всеки един детайл“, така че не купувам този.
Мисля, че според мен основната причина, поради която MongoDB крие това, е, защото въпреки че, както гласи документацията:
Различните колекции са много важни за високопроизводителна пакетна обработка.
Използването на множество колекции като средство за вертикално мащабиране, а не хоризонтално чрез клъстер, както е проектиран MongoDB, се счита (доста често) за лоша практика за широкомащабни уебсайтове; като такива 12K колекции обикновено се считат за нещо, което хората никога няма и не трябва да проверяват.