I think, you might have that a bit wrong. MongoDB is a wonderful library, even for production. However, you have to be careful when selecting your DB, because it has to fit your requirements. MongoDB is no universal solution and just because you throw MongoDB at a problem you will not instantly solve it!
MongoDB has the following limitations:
- MongoDB is a NoSQL DB, which means you have to know how to use it and you need DB admins who are able to maintain it. This might lead to additional costs for you and your company.
- MongoDB is not a relational DB, so you cannot write easy queries in order to select a specific data set from several tables (for example no
JOINs)
- NoSQL DBs are relatively new, so there are not that many established patterns which help you structure your DB efficiently. This issue might result in performance penalties.
- MongoDB is very memory hungry. Your server will need a lot of RAM
- Some operations might lock your entire database
- You have to update many things manually
You might find the following articles interesting: Valhalla and StackOverflow