Here is my take based on my usage. Your mileage may vary.
* Slow writes:
I guess they could be slow but I think the real point is that for each request you can decide between speed and durability. For my current project we almost always choose speed and I can assure you there are a lot of products that we have tried and MongoDB is by far the fastest and most flexible.
* Queryability:
Yes you need an index to quickly retrieve data and sometimes getting the right index is non-obvious as this thread shows:
https://groups.google.com/d/topic/mongodb-user/wcUyBdxFFXc/discussionNot sure if the author expected MongoDB to be a magic bullet or defy the laws of computer science: O(N) is still a long time if N is big.
* Lack of Compression
I can see that having the server compress documents might be a nice option for some workloads but the overhead would be a deal breaker for others. It would make indexing more interesting at a minimum and full table scans perform even worse. Disk is fairly cheap these days and there is nothing stopping you from compressing documents before they go into MongoDB if you really needed to save the space (I have done something similar to reduce the "serialization overhead"). Compressing across documents I would think is a complexity non-starter.
* Memory Monster
Yes it is.
* Lack of Tools
I think MongoDB is much more in the Unix camp here of offering simple tools that do one thing well instead of a swiss army knife monolith. If you like the Unix model your fine (I do). If you want the swiss army knife I think you just found a niche you could fill.
* Undependable Tools.
Not my experience. I have found most of the tools to just work. I have found MongoDB to be very good at finding weaknesses in infrastructure and exposing them. Is it MongoDB's fault my SAN is a piece of...?
* Huge storage requirements.
This is a big one. For my primary workload, insert/update/delete, the disk used just keeps growing until we do a repair for the database. It is a world better in 2.2 with the power-of-2 allocator.
* Operations.
I've had the exact opposite experience. If you use the redundancy MongoDB provides and have your monitoring in place to detect and fix faults the cluster can run itself for weeks or months without intervention. If you have not done the work up front to get everything in place then your operations people won't be sleeping for more than a few weeks.
Rob.