Overall Satisfaction with MongoDB
We use MongoDB to store analytics information from social networking sites, and also as our main datastore for our Intranet. It works well for both by providing very fast access to our data, and in a very simple way. All of our data is consumed by ASP.NET and used mainly in JavaScript, so working with documents is a very natural fit.
- Replication, simplest replication I've ever had to set up, and it works very well.
- Performance, because you are simply retrieving documents it is very fast. I've seen people try to use it like a relational system and have issues, but if you learn how it is intended to be used you will have very little concern with performance in my experience.
- Maps to objects because it's BSON. Serializing is a major strength of MongoDB to me. It is pretty awesome to just grab a document and have an object in memory and away you go!
- .Net driver implementation, I would like to see a driver that more closely aligns with the MongoDB way. Having to use tons and tons of helper classes to build queries is kind of a pain to me.
- Recovery, it would be great to see ways to refresh replication and sharding settings once they are broken. The current path is to start over with new nodes and restore data. That could be improved in my opinion.
- They don't include an init script for Mongo's service, which is really a shame to me.
- Much faster development time.
- Price is fantastic compared to MSSQL when you consider OS costs and the entire package.
- Only negative to me is the lack of DBA skills for it, due to it being a new player in the field. I feel like that will get better as time moves on however.
- MSSQL, Oracle, MySQL and PostgreSQL
I selected MongoDB because it works for well with web interfaces. All of the RDBMS alternatives would have required a lot more time writing schemas and working around retrieving data and mapping it. That could have been somewhat mitigated with Entity Framework, but that again adds another piece of complication that I would rather just skip myself.