我确定之前已经问过这个问题,但是我已经花了几天时间阅读这些互联网但是还没能弄清楚NoSQL文档数据库的用例(不是键值存储)除了可扩展性之外。
所以这是我的问题,如果可扩展性不是我关心,那么在以下任何一种情况下使用NoSQL文档数据库都会有意义:
工具链的成熟度如何?各种Rails 3宝石?测试框架?
基本上,将我的应用程序推向市场的实用选择是什么?如果数据模式是流动的,这是一个更大的问题 - 数据存储或处理应用程序中的数据?
答案 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的匹配器