mongodb - NoSQL - MongoDB 与 CouchDB

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

最佳答案

查看以下链接

  • CouchDB Vs MongoDB
  • MongoDB or CouchDB - fit for production?
  • DB-Engines - Comparison CouchDB vs. MongoDB

更新:我发现很棒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 系统。主-主复制是一个特别有趣的功能,可以轻松进行多站点部署。

https://stackoverflow.com/questions/3375494/

相关文章:

sql - NoSQL 的用例

windows - 可视化管理 MongoDB 文档和集合

mongodb - 如何检查数组字段是否包含唯一值或 MongoDB 中的另一个数组?

mongodb - 如何更改字段的类型?

mongodb - Node.js Mongoose.js 字符串到 ObjectId 函数

python - 如何使用 pymongo 对 mongodb 进行排序

mongodb - 如何在 mongodb 上导入 .bson 文件格式

mongodb - 无法连接到服务器 127.0.0.1 :27017

mongodb - Mongodb中的保存和插入有什么区别?

node.js - 将 created_at 和 updated_at 字段添加到 Mongoose