I strongly agree. I just went through a painful transition of our product from CouchDB onto MongoDB. It was a week or two of pain, but I had things isolated enough that it didn't hurt as badly as it could have.
Fundamentally, Couch was a pretty amazing piece of technology, and Damien Katz is coder's coder. But they want to make something that would act like a Lotus Notes client. I wanted a piece of web infrastructure.
Also, Mongo DB is interesting and I have plans to evaluate it for our setup(batch reads and writes, no master-master replication requirement, but need master-slave replication, also need sharding rather desperately). Does anyone have any experience couchdb-lounge mentioned in the same comment?
This is fine on 64-bit CPUs, but less good on 32-bit dev boxes that people are probably using.
Very nice API, though.
it's my understanding that mongo currently only shards primary key lookups, not queries. it'll be interesting to see how successful they are in grafting a full distributed layer over top of it. generally the merge layer kills you because you must query all nodes to support global indexes. that is not to say that its impossible.
mongo has some wacky stuff in the on-disk file format which is kind of interesting, too.
It's not that bad actually. PK lookups and range queries are rather easy because mongos (the sharding daemon) knows the shard layout and only queries nodes that hold data relevant to the query.
Other query types, especially joins, are much harder. But frankly, PK lookups and range queries go a long way for most applications.
The real effort is in making all this, especially the automatic shard rebalancing, not only reliable but absolutely bulletproof. That seems to be on mongo's roadmap and if they get there that would be a major selling point.
When I look at the design I feel somewhat inspired, but not, exactly, to replicate it. It's odd.