Nie znam konkretnie MongoDB. Ogólnie rzecz biorąc, otwarcie połączenia z bazą danych jest operacją stosunkowo powolną i wiąże zasoby systemowe. Nie mogę powiedzieć, czy to wystarczy, aby mieć znaczenie w twoim przypadku.
Posiadanie innej bazy danych dla każdego użytkownika utrudniłoby wykonywanie zapytań, które uzyskują dostęp do danych dla wielu użytkowników. Może nie musisz tego robić.
Mimo to uważam, że o wiele prostsze byłoby po prostu umieszczenie identyfikatora użytkownika w każdym rekordzie, zamiast tworzenia oddzielnej bazy danych. Jaki jest zysk z oddzielnych baz danych? OK, usunięcie użytkownika oznacza powiedzenie „upuść bazę danych”. Ale usunięcie użytkownika z pojedynczej bazy danych powinno oznaczać powiedzenie "usuń z tabeliX gdzie użytkownik=?; usuń z tabeliY gdzie użytkownik=?" itp. dla dowolnej liczby odpowiednich tabel. Nie wyobrażam sobie, że to setki, prawda? Może jakieś pół tuzina linijek kodu?