NoSQL文档数据库 - 除了可伸缩性之外,什么是一个很好的用例?

时间:2012-11-05 14:38:07

标签: mongodb couchdb nosql

我确定之前已经问过这个问题,但是我已经花了几天时间阅读这些互联网但是还没能弄清楚NoSQL文档数据库的用例(不是键值存储)除了可扩展性之外。

所以这是我的问题,如果可扩展性不是我关心,那么在以下任何一种情况下使用NoSQL文档数据库都会有意义:

  1. 如果超过40%的模型是多态关联
  2. 如果需要大约8个模型加载整个对象才有意义呢?
  3. 如果应用程序的某些部分很快变成EAV,例如嵌入到应用程序中的迷你CMS,该怎么办?
  4. 工具链的成熟度如何?各种Rails 3宝石?测试框架?

    基本上,将我的应用程序推向市场的实用选择是什么?如果数据模式是流动的,这是一个更大的问题 - 数据存储或处理应用程序中的数据?

1 个答案:

答案 0 :(得分:3)

我相信mongodb& mongoid非常适合您的需求

  • 如果超过40%的模型是多态关联。

      

    Mongoid内置多态功能。你可以在这里看看   http://mongoid.org/en/mongoid/docs/relations.html(多态性部分)

  • 如果需要大约8个模型加载整个对象才有意义呢?

      

    mongoid也有一个预先建立的渴望加载选项。你可以在这里查看http://mongoid.org/en/mongoid/docs/querying.html(渴望加载部分)

  • 如果应用程序的某些部分很快转变为EAV,例如嵌入到应用程序中的迷你CMS,该怎么办。

      

    我认为mongodb最适合EAV,因为它处理非结构化的无模式数据。

我在使用Ruby mongoid gem进行多个项目方面有很好的经验。它坚如磐石,设计精良的图书馆,具有很多功能。由于它是一个rails应用程序,您可以使用任何不同的测试框架,如rspec或黄瓜进行测试。在https://github.com/evansagge/mongoid-rspec

查看rspec的匹配器