mongodb - NoSQL - MongoDB 与 CouchDB

标签 mongodb couchdb nosql

谈到 NoSQL 运动,我完全是个菜鸟。我听说过很多关于 MongoDB 和 CouchDB 的信息。我知道两者之间存在差异。作为进入 NoSQL 世界的第一步,您建议学习哪个?

最佳答案

查看以下链接

更新:我发现很棒comparison of NoSQL数据库。

MongoDB (3.2)

  • 编写语言:C++
  • 要点:JSON 文档存储
  • 许可证:AGPL(驱动程序:Apache)
  • 协议(protocol):自定义、二进制 (BSON)
  • 主/从复制(使用副本集进行自动故障转移)
  • 内置分片
  • 查询是 javascript 表达式
  • 在服务器端运行任意 javascript 函数
  • 具有地理空间索引和查询
  • 具有不同性能特征的多个存储引擎
  • 性能优于功能
  • 文件验证
  • 日记
  • 强大的聚合框架
  • 在 32 位系统上,限制为 ~2.5Gb
  • 集成文本搜索
  • GridFS 用于存储大数据 + 元数据(实际上不是 FS)
  • 数据中心感知

最佳使用:如果您需要动态查询。如果您更喜欢定义索引,而不是 map/reduce 函数。如果您需要在大型数据库上获得良好的性能。如果您想要 CouchDB,但您的数据更改太多,会填满磁盘。

例如:对于大多数您会使用 MySQL 或 PostgreSQL 做的事情,但预定义的列确实会让您望而却步。

CouchDB (1.2)

  • 编写于:Erlang
  • 要点:数据库一致性、易用性
  • 许可证:Apache
  • 协议(protocol):HTTP/REST
  • 双向 (!) 复制,
  • 连续或临时,
  • 具有冲突检测功能,
  • 因此,主-主复制。 (!)
  • MVCC - 写入操作不会阻塞读取
  • 提供以前版本的文档
  • 防崩溃(可靠)设计
  • 需要不时压缩
  • View :嵌入式 map /减少
  • 格式化 View :列表和节目
  • 可以进行服务器端文档验证
  • 可以进行身份​​验证
  • 通过“_changes”(!)进行实时更新
  • 附件处理

最佳使用:用于累积、偶尔更改的数据,在这些数据上运行预定义的查询。版本控制很重要的地方。

例如:CRM、CMS 系统。主-主复制是一个特别有趣的功能,可以轻松进行多站点部署。

关于mongodb - NoSQL - MongoDB 与 CouchDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3375494/

相关文章:

node.js - Mongoose .pre ('save' ) 不会触发

MongoDB - 记录写入和读取查询

ruby-on-rails - 将 CouchDB 作为 Rails 应用程序的一部分分发?

mongodb - 图形数据库与文档数据库与三重存储

android - 在 Firebase 中如何通过单个查询返回多个项目?

mongodb - Docker中的Symfony应用程序不起作用

node.js - 使用 MongoDB Streams 观看文档创建

python - 使用 python 查询 Cloudant (couchdb)(错误 500,未知查询语言)

passwords - 在 CouchDB _user 数据库中更改用户名和密码

java - 使用java将Mysql数据库转为Nosql hbase