CouchDB與MongoDB在架構(gòu)和用途上,有很多相似的地方,詳細的對比如下表中所示 -
| 特征比較 | CouchDB | MongoDB |
|---|---|---|
| 數(shù)據(jù)模型 | 它遵循面向文檔的模型,數(shù)據(jù)以JSON格式呈現(xiàn)。 | 它遵循面向文檔的模型,但數(shù)據(jù)以BSON格式呈現(xiàn)。 |
| 接口 | CouchDB使用基于HTTP/REST的接口。它非常直觀,設計非常好。 | MongoDB在TCP/IP上使用二進制協(xié)議和自定義協(xié)議。 |
| 對象存儲 | 在CouchDB中,數(shù)據(jù)庫包含文檔。 | 在MongoDB中,數(shù)據(jù)庫包含集合,而集合包含文檔。 |
| 查詢方法 | CouchDB遵循Map/Reduce查詢方法(JavaScript+其他) | MongoDB遵循Map/Reduce(JavaScript)創(chuàng)建集合+基于對象的查詢語言。 |
| 復制 | CouchDB支持使用自定義沖突解析功能的主-主復制。 | MongoDB支持主從復制。 |
| 并發(fā) | 它遵循MVCC(多版本并發(fā)控制) | 就地更新 |
| 偏向 | CouchDB優(yōu)先考慮可用性 | MongoDB優(yōu)先考慮一致性 |
| 性能一致性 | 在CouchDB中比MongoDB更安全 | 在MongoDB中數(shù)據(jù)庫包含集合,而集合包含文檔。 |
| 一致性 | CouchDB最終是一致的。 | MongoDB也是一致的。 |
| 編寫語言 | 使用Erlang語言編寫 | 使用C++語言編寫 |