At first I was in love with it and now I just like it. It is a good tool for some things but it is not a universal replacement for everything database-like.
I like :
* futon (yes, I said it, I like couch because of a pretty GUI). I can quickly look at the database and debug what the problem is. Visibility into the database, the serialization format and the protocol are important to me.
* HTTP interface. Access it with curl or any other tools that speak HTTP.
* Documents are json. I like json.
* Can attach binary blobs to documents + have mime content types markers. Can serve this data to a web browser.
* Durable -- when my request finished, I know the data is on the disk.
* Map/Reduce -- I just like it. It makes sense to me.
Don't like:
* Not very good for high rate updates. Need to compact it periodically
* Not that fast. I know I can tweak it here and there, but by default it is on the slow end of the NoSQL DB speed range. I can live with this.
* MVCC. For some people this is a GoodThing for me it is a "Meh". Sometimes I would like to just update the document in place and overwrite the old one. Perhaps Redis or Mongo would be a better tool here. Now I just do it by repeatedly reading (on failure), updating _rev and then writing back.
* Map/Reduce -- Am I the only one who likes this? It is hard to get others onboard and start thinking of this instead of traditional queries.
Things I don't care about but others like:
* Offline replication. Others rave about it. I used it only a couple of times. Always afraid to end up conflicts silently buried in the DB history.
* Javascript -- don't really like it that much. I use the Python view server to write views. It is actually faster! :