I am working on a working on a learning app that allows students to follow lessons and do exams. The app is being used by a lot of schools. Its currently using a relational database (MariaDB). For scaling problems we are looking into changing the database to MongoDB. The app stores the lessons in tables and the lessons are for all the students the same. The student results are stored in tables for which we, when we switch to MongoDB, like to use sharded collections. What we would like it that for every school or every set of school there is a database or a set of collections. That set of collections is the sharded collections with the students specific stuff like student results and a set of replicated collections with the lessons. When I read the documentation I see that when you combine sharded collections and non-sharded collections, the non-sharded collection are only stored on the main shard in stead of being replicated to all shards. Is there a solution for my problem? If possible, I would like to do aggregate queries on data from the lessons and from the student specific collections (from the sharded and the non-sharded collections)? Any suggestions or solutions are very much appreciated. I have searched with Google and on the MongoDB site and on the MongoDB community forums, but I could not find a solution.