CouchDB与MongoDB在架构和用途上,有很多相似的地方,详细的对比如下表中所示 -
特征比较 | CouchDB | MongoDB |
---|---|---|
数据模型 | 它遵循面向文档的模型,数据以JSON格式呈现。 | 它遵循面向文档的模型,但数据以BSON格式呈现。 |
接口 | CouchDB使用基于HTTP/REST的接口。它非常直观,设计非常好。 | MongoDB在TCP/IP上使用二进制协议和自定义协议。 |
对象存储 | 在CouchDB中,数据库包含文档。 | 在MongoDB中,数据库包含集合,而集合包含文档。 |
查询方法 | CouchDB遵循Map/Reduce查询方法(JavaScript+其他) | MongoDB遵循Map/Reduce(JavaScript)创建集合+基于对象的查询语言。 |
复制 | CouchDB支持使用自定义冲突解析功能的主-主复制。 | MongoDB支持主从复制。 |
并发 | 它遵循MVCC(多版本并发控制) | 就地更新 |
偏向 | CouchDB优先考虑可用性 | MongoDB优先考虑一致性 |
性能一致性 | 在CouchDB中比MongoDB更安全 | 在MongoDB中数据库包含集合,而集合包含文档。 |
一致性 | CouchDB最终是一致的。 | MongoDB也是一致的。 |
编写语言 | 使用Erlang语言编写 | 使用C++语言编写 |