Non ho familiarità con MongoDB in particolare. In generale, l'apertura di una connessione a un database è un'operazione relativamente lenta e impegna le risorse di sistema. Se questo è abbastanza importante nel tuo caso non posso dirlo.
Avere un db diverso per ogni utente renderebbe difficile l'esecuzione di query che accedono ai dati per più utenti. Forse non hai bisogno di farlo.
Tuttavia, penso che in generale sarebbe molto più semplice inserire un ID utente in ogni record piuttosto che creare un database separato. Qual è il vantaggio di database separati? Ok, eliminare un utente significa dire "elimina database". Ma eliminare un utente da un singolo database dovrebbe significare dire "elimina da tableX dove utente=?; elimina da tabellaY dove utente =?" ecc per tutte le tabelle rilevanti che hai. Non riesco a immaginare che siano centinaia, giusto? Forse una mezza dozzina di righe di codice o giù di lì?