Det här svaret är sent men de andra svaren verkar lite ... svaga när det gäller tillförlitlighet och faktainformation så jag ska försöka åtgärda det lite.
Men av någon anledning satte mongodb en gräns på 24000 för antalet namnutrymmen i databasen,
Det är bara standardinställningen. Ja, det finns en standardinställning.
Det står på gränssidan att 24000 är gränsen ( http://docs.mongodb.org/manual/reference/limits/#Number%20of%20Namespaces ), som om det inte finns något sätt att utöka det men det finns det.
Det finns dock en maxgräns för hur stor en namnområdesfil kan vara ( http://docs.mongodb.org/manual/reference/limits/#Size%20of%20Namespace%20File ) som är 2 GB. Det ger dig ungefär 3 miljoner namnutrymmen att spela med i de flesta fall, vilket är ganska imponerande och jag är osäker på om många människor kommer att nå den gränsen snabbt.
Du kan ändra standardvärdet så att det blir högre än 16 MB genom att använda parametern nssize antingen i konfigurationen ( http://docs.mongodb.org/manual/reference/configuration-options/#nssize ) eller vid körning genom att manipulera kommandot som används för att köra MongoDB ( http://docs.mongodb.org/manual/reference/mongod/#cmdoption-mongod--nssize ).
Det finns ingen riktig anledning till varför MongoDB implementerar 16MB som standard för sin nsstorlek så vitt jag vet, jag har aldrig hört talas om mottot "inte störa användaren med varenda detalj" så jag köper inte den.
Jag tror, enligt min åsikt, den främsta anledningen till att MongoDB döljer detta är för att även om, som dokumentationen säger:
Distinkta samlingar är mycket viktiga för batchbearbetning med hög genomströmning.
Att använda flera samlingar som ett sätt att skala vertikalt snarare än horisontellt genom ett kluster, som MongoDB är designat för, anses (ganska ofta) som dålig praxis för storskaliga webbplatser; som sådan anses 12K-samlingar normalt vara något som folk aldrig kommer, och aldrig bör, fastställa.