MongoDB sounds like a fine application for your problem, but there are plenty of reasons why you would not use it.
MongoDB would not be well suited for applications that need:
- Multi-Object Transactions: MongoDB only supports ACID transactions for a single document.
- SQL: SQL is well-known and a lot of people know how to write very complex queries to do lots of things. This knowledge is transferrable across a lot of implementations where MongoDB’s queries language are specific to it.
- Strong ACID guarantees: MongoDB allows for things like inconsistent reads which is fine in some applications, but not in all.
- Traditional BI: A lot of very powerful tools exist that allow for OLAP and other strong BI applications and those run against traditional SQL database.