Reputation: 8414
I'm in the process of evaluating MongoDB for a personal project. I'm putting together a site that will allow users to register and store information on my server.
While evaluating MongoDB I saw that it can create a database on the fly, the first time a record is inserted. That got me thinking that I could separate the data for each user into their own database. The database name will be derived from the user's unique id. After a user registers, the first time they store information their database will be created.
Does anyone know if this is a feasible design with MongoDB? Would it be better to simply store all user's data in a single database?
Upvotes: 11
Views: 3097
Reputation: 30176
Yes, a single collection is better, that way you can use indexing to your advantage.
Iterating over a list of databases or collections will always take O(N) time whereas you could achieve O(log N) time to find individual documents using indexes.
Upvotes: 5