Ta odpowiedź jest spóźniona, jednak inne odpowiedzi wydają się nieco... słabe pod względem wiarygodności i informacji faktycznych, więc postaram się trochę temu zaradzić.
Ale z jakiegoś powodu mongodb ustawił limit 24000 dla liczby przestrzeni nazw w bazie danych,
To tylko ustawienie domyślne. Tak, istnieje ustawienie domyślne.
Na stronie limitów jest napisane, że 24000 to limit ( http://docs.mongodb.org/manual/reference/limits/#Number%20of%20Namespaces ), jakby nie było możliwości rozszerzenia tego, ale jest.
Istnieje jednak maksymalny limit rozmiaru pliku przestrzeni nazw ( http://docs.mongodb.org/manual/reference/limits/#Size%20of%20Namespace%20File ), który wynosi 2 GB. To daje około 3 miliony przestrzeni nazw do zabawy w większości przypadków, co jest dość imponujące i nie jestem pewien, czy wiele osób szybko osiągnie ten limit.
Możesz zmodyfikować domyślną wartość, aby była większa niż 16 MB, używając parametru nssize w konfiguracji ( http://docs.mongodb.org/manual/reference/configuration-options/#nssize ) lub w czasie wykonywania, manipulując użytym poleceniem uruchomić MongoDB ( http://docs.mongodb.org/manual/reference/mongod/#cmdoption-mongod--nssize ).
O ile mi wiadomo, nie ma prawdziwego powodu, dla którego MongoDB domyślnie implementuje 16 MB dla swojego rozmiaru ns, nigdy nie słyszałem o motto „nie przeszkadzać użytkownikowi każdym szczegółem”, więc nie kupuję tego.
Myślę, że moim zdaniem głównym powodem, dla którego MongoDB to ukrywa, jest to, że chociaż, jak stwierdza dokumentacja:
Odrębne kolekcje są bardzo ważne dla wysokoprzepustowego przetwarzania wsadowego.
Używanie wielu kolekcji jako sposobu skalowania w pionie, a nie w poziomie przez klaster, do czego została zaprojektowana MongoDB, jest uważane (dość często) za złą praktykę w przypadku witryn internetowych o dużej skali; jako takie kolekcje 12K są zwykle uważane za coś, czego ludzie nigdy i nigdy nie powinni się upewnić.