CouchDB and MongoDB both are popular NoSQL databases. MongoDB provides consistency and partition tolerance while CouchDB provides availability and partition tolerance.
||CouchDB is written in Erlang.
||MongoDB is written in C++.
||CouchDB is very well designed and very intuitive. It uses an http rest based interface.
||MongoDB uses a binary protocol.
||CouchDB is safer than MongoDB.
||MongoDB is faster than CouchDB.
||CouchDB is little bit complex. It can do queries by id without using any map-reduce functions.
||MongoDB is simple and it is like MySQL with its SQL-esque query structure.
||CouchDB is preferred where occasionally changing data is occurred or predefined queries are to be run.
||MongoDB is preferred if you need dynamic queries.
||CouchDB supports master-master replication as well as master-slave replication.
||MongoDB supports master-slave replication only.
||Triggers are available in CouchDB.
||Triggers are not available in MongoDB.
||CouchDB doesn't store data in JSON format.
||MongoDB serializes JSON data to BSON.
||CouchDB is preferred when you need an ultimate single server durability.
||MongoDB is preferred when you have big data set that needs sharding while maintaining huge throughput.
||CouchDB doesn't provide as many as querying options like MongoDB.
||MongoDB provides more querying options than CouchDB. Indexing data is also simpler in MongoDB.