Så du tittar på någonstans i närheten av 100 miljarder poster (1 miljon poster * 100 000 användare).
Det föredragna sättet att hantera stora mängder data är att skapa ett fragmenterat kluster som delar upp data över flera servrar som presenteras som en enda logisk enhet via mongoklienten.
Därför är svaret på din fråga att lägga alla dina poster i en enda delad samling.
Antalet skärvor som krävs och konfigurationen av klustret är relaterat till storleken på data och andra faktorer såsom kvantiteten och distributionen av läsningar och skrivningar. Svaren på dessa frågor är förmodligen mycket specifika för din unika situation, så jag kommer inte att försöka gissa dem.
Jag skulle nog börja med att bestämma hur många skärvor du har tid och maskiner tillgängliga för att installera och testa systemet på ett kluster av så många maskiner. Baserat på resultatet av det kan du bestämma om du behöver fler eller färre skärvor i ditt kluster