草庐IT

mongodb - NoSQL - MongoDB 与 CouchDB

coder 2023-04-23 原文

谈到 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/

有关mongodb - NoSQL - MongoDB 与 CouchDB的更多相关文章

  1. ruby-on-rails - 我应该使用哪个适用于 Ruby 的 CouchDB 适配器? - 2

    一些我找到的选项是ActiveCouchCouchRESTCouchPotatoRelaxDBcouch_foo我更喜欢GitHub上的项目,因为这让我更容易fork和推送修复。所有这些都符合该要求。我习惯了Rails,所以我喜欢像ActiveRecord模型一样工作的东西。另一方面,我也不希望我和Couch之间太多--毕竟我使用它作为我的数据库是有原因的。最后,它们似乎都得到了相当积极的维护(couch_foo可能是个异常(exception))。所以我想这归结为(不可否认和不幸的)主观:有没有人对他们有过好的或坏的经历? 最佳答案

  2. ruby-on-rails - ActiveRecord 和 NoSQL - 2

    我已经使用Rails几年了,并且非常习惯ActiveRecord,但最近完成了一项可以从(某些)NoSQL数据存储中获益的任务。少量数据最好放在NoSQL系统中,但大部分数据仍应放在RDBMS中。不过,我看过的每个NoSQL包装器/gem似乎都需要从应用程序中删除ActiveRecord。是否有结合这两种技术的建议方法? 最佳答案 不确定您正在研究什么NoSQL服务,但我们已经将MongoDB与Postgres结合使用了一段时间。有用的提示,他们说你需要摆脱ActiveRecord,但实际上你不需要。大多数人只是这么说,因为您最终没

  3. ruby-on-rails - 有没有很好的引用(开源)Rails NoSQL应用程序? - 2

    我有兴趣了解使用nosql将如何影响rails应用程序的架构/设计/代码。有人知道使用nosql持久性的开源rails应用程序的一个好例子吗?谢谢 最佳答案 看看这些项目:卡桑德拉用法atDigg。卡桑德拉用法atTwitter。Friendly用法atFetLife(nsfw)。最后,MyNoSQL是一个提供nosql相关信息的好网站。 关于ruby-on-rails-有没有很好的引用(开源)RailsNoSQL应用程序?,我们在StackOverflow上找到一个类似的问题:

  4. ruby-on-rails - CouchDB 文档模型更改? - 2

    Rails使用迁移的概念来处理使用ActiveRecordAPI的模型更改。CouchDB使用JSON(嵌套映射和数组)来表示其模型对象。到目前为止,在使用CouchDB的过程中,我没有看到识别文档结构何时发生变化(除了作为开发人员受到纪律约束)或将文档从旧模型迁移到新模型的好方法。CouchDB中是否存在处理模型更改的现有功能或最佳实践? 最佳答案 RDBMS洗脑时间到了。:)couchdb无模式设计的最大亮点之一就是直接旨在避免迁移需求。对象的JSON表示形式使您可以轻松地回避键入您的对象。例如,假设您有一个博客类型的网络应用程

  5. ruby-on-rails - 在一个 Rails 应用程序中使用 PostgreSQL 的 MongoDB - 2

    我可以在一个Rails应用程序中同时使用MongoDB和PostgreSQL吗?具体来说,我最终会想要使用像MongoHQ这样的东西。到目前为止,我未能在实验中进行这项工作。令我担心的是,MongoDB文档特别指出我必须禁用ActiveRecord。任何建议将不胜感激。 最佳答案 您无需禁用ActiveRecord即可使用MongoDB。查看Mongoid只需将gem加上任何模型与您现有的任何ActiveRecord模型一起添加。您应该注意到MongoHQ只是MongoDB的托管服务,可以与任何对象文档映射器(ODM)一起使用。更多

  6. ruby - 使用 mongodb/mongoid 运行时更改模型 - 2

    我必须在mongoid模型中添加几个字段,我知道MongoDB没有迁移,但如果我继续而不删除数据库,使rails完全“重新生成”数据库,它不会显示或使用新的领域!去这里最好的方法是什么?有比删除/重新打开mongodb更软的东西吗?提前致谢卢卡 最佳答案 一般来说,应该可以在运行时用新字段更新旧文档。MongoDB中不需要迁移。您可能想编写rake任务以使用新字段和默认值更新旧文档。您可以通过检查那些默认值为nil的新字段来找到这些文档。更新简单风格:如果您使用默认值定义一个新字段,只要您设置了一个新值,就应该始终使用该值:应用程序

  7. ruby-on-rails - 我如何从 Ruby 代码连接到 mongodb? - 2

    我如何从Ruby代码连接到mongodb? 最佳答案 首先,您必须安装MongoDbgem:geminstallmongo然后运行代码:require'rubygems'#notnecessaryforRuby1.9require'mongo'db=Mongo::Connection.new.db("mydb")#ORdb=Mongo::Connection.new("localhost").db("mydb")#ORdb=Mongo::Connection.new("localhost",27017).db("mydb")

  8. ruby - MongoDB:无法从 BSON 类型 EOO 转换为 Date - 2

    我正在尝试使用聚合框架(使用ruby​​)并像这样投影日期:db['requests'].aggregate([{"$project"=>{_id:0,method:'$method',user:'$user',year:{'$year'=>'$timestamp'}}}])文档是这样的:{_id:ObjectId("5177d7d7df26358289da7dfd"),timestamp:ISODate("2013-04-12T03:58:05+00:00"),method:"POST",status:"200",inputsize:"874",outputsize:"4981",u

  9. ruby - 在 Ruby 中从 MongoDB 中检索字段的子集 - 2

    我试图通过在Ruby中进行的查询从MongoDB获取字段的子集,但它似乎不起作用。它不返回任何结果这是ruby代码:coll.find("title"=>'Halo',:fields=>["title","isrc"])#thisdoesn'twork如果我删除字段散列,它会工作,返回包含所有字段的结果coll.find("title"=>'Halo')#thisworks查看mongodb控制台,第一个查询在mongodb服务器上结束,如下所示:{title:"Halo",fields:["title","isrc"]}如果我尝试从mongo客户端控制台进行查询,它会工作,我会得到结

  10. ruby-on-rails - Need Advice : Is this a good use case for a 'NoSQL' Database? 如果有,是哪一个? - 2

    我最近一直在研究NoSql选项。我的场景如下:我们从位于世界各地偏远地区的定制硬件收集和存储数据。我们每15分钟记录一次来自每个站点的数据。我们最终希望每1分钟移动一次。每条记录有20到200个测量值。一旦设置好硬件,每次都会记录和报告相同的测量值。我们面临的最大问题是我们从每个项目中获得了一组不同的衡量标准。我们测量大约50-100种不同的测量类型,但是任何项目都可以有任意数量的每种测量类型。没有可以容纳数据的预设列集。因此,当我们在系统上设置和配置项目时,我们创建并构建了每个项目数据表,其中包含所需的确切列。我们提供工具来帮助分析数据。这通常包括更多的计算和数据聚合,其中一些我们也

随机推荐