If you are looking to do anything with mobile applications, I would recommend CouchDB. CouchBase has a version of it that includes Android and iOS libraries for automatic sync.
I know you are asking about Mongo, but I feel like this might be helpful.
I used MongoDB to handle analytics for our system and it's been OK. We had some problems with memory leaks & other issues with Mongo but as new versions are released, these problems are fixed.
As for the question "Why MongoDB?" it depends on what you want MongoDB to do. Each of the NoSQL solutions have their pros and cons and you'll be best doing some investigation into what best suits your purposes. For example, CouchDB has built in record versioning. For analytic's this is an unwanted overhead but for a system where you need record history (e.g. collaboration tool) having that built into your DB is a big boost.
Then there's also the CAP Theorem. Check out this URL for a great overview: http://blog.nahurst.com/visual-guide-to-nosql-systems. Out of consistency, availability and partition tolerance, you can only satisfy 2 of the three. So for example, your solution could partition beautifully and every client could read/write data when you want but at the same time you couldn't guarantee every client sees the same data all the time.
Hope that gives you a little food for though. MongoDB's great. The community is helpful, the product is quick & easy to get up and working with and it's powerful to boot. But it's not the only solution out there and the right solution depends on what you are aiming for.
6 comments
[ 2.4 ms ] story [ 26.1 ms ] threadI know you are asking about Mongo, but I feel like this might be helpful.
As for the question "Why MongoDB?" it depends on what you want MongoDB to do. Each of the NoSQL solutions have their pros and cons and you'll be best doing some investigation into what best suits your purposes. For example, CouchDB has built in record versioning. For analytic's this is an unwanted overhead but for a system where you need record history (e.g. collaboration tool) having that built into your DB is a big boost.
Then there's also the CAP Theorem. Check out this URL for a great overview: http://blog.nahurst.com/visual-guide-to-nosql-systems. Out of consistency, availability and partition tolerance, you can only satisfy 2 of the three. So for example, your solution could partition beautifully and every client could read/write data when you want but at the same time you couldn't guarantee every client sees the same data all the time.
Hope that gives you a little food for though. MongoDB's great. The community is helpful, the product is quick & easy to get up and working with and it's powerful to boot. But it's not the only solution out there and the right solution depends on what you are aiming for.