| Data Model |
It follows the document-oriented model and data is presented in JSON format. |
It follows the document-oriented model but data is presented in BSON format. |
| Interface |
CouchDB uses HTTP/REST based interface. It is very intuitive and very well designed. |
MongoDB uses binary protocol and custom protocol over TCP/IP. |
| Object Storage |
In CouchDB, database contains documents. |
In MongoDB, database contains collections and collection contains documents. |
| Query Method |
CouchDB follows Map/Reduce query method. (JavaScript+others) |
MongoDB follows Map/Reduce (JavaScript) creating collection + object-based query language. |
| Replication |
CouchDB supports master-master replication with custom conflict resolution functions. |
MongoDB supports master-slave replication. |
| Concurrency |
It follows MVCC (Multi Version Concurrency Control). |
Update in-place. |
| Preferences |
CouchDB favors availability. |
MongoDB favors consistency. |
| Performance Consistency |
In CouchDB is safer than MongoDB |
In MongoDB, database contains collections and collection contains documents. |
| Consistency |
CouchDB is eventually consistent. |
MongoDB is strongly consistent. |
| Written in |
it is written in Erlang. |
it is written in C++. |