我觉得对这两个世界没有足够的经验来正确和完整地回答你的问题,但是我使用文档数据库已经有一段时间了,这里有一些个人提示。
文档数据库基于键、值和静态视图的概念,对于查找具有特定值的一组文档非常酷。
They 不要概念化文件之间的关系。
因此,如果您的软件必须提供高级“查询”,其中选择标准作用于多种“文档类型”,或者您只需要使用多个元素执行选择,那么 [键,值] 概念是不合适的。
还有许多其他情况下文档数据库是不合适的:在“分页”表中呈现大型数据集,可在多个列上排序是性能低且磁盘空间使用率高的情况之一huge.
因此,在许多情况下,您必须执行“服务器端”处理才能恢复正常,并且使用 Rails 或任何其他基于 Ruby 的框架,您可能会遇到性能问题。
图数据库基于 Tripplestore 的概念,这意味着它们还概念化了实体之间的关系。
可以使用关系(和实体角色)遍历该图,并且在跨关系结构数据执行搜索时可能会更方便。
由于我没有图形数据库的经验,我不知道图形数据库是否可以使用多个条件轻松查询/遍历,但是如果建议的读者有这样的信息,我真的很感激任何此类查询/遍历的示例。
我目前正在阅读有关 InfoGrid 的内容,并试图弄清楚此类数据库是否可以方便地对大量数据(包括关系)执行复杂的请求......
据我所知,InfoGrah 应该被视为一个“数据联合者”,能够从多个来源(商店)搜索/挖掘数据,也可以是 NoSQL 数据库,例如 Mongo。
这意味着你could使用 mongo 存储进行更新,使用 InfoGraph 进行数据搜索,以及maybe当涉及到 nosql 数据库中的复杂搜索时,可以节省大量的 cpu 和磁盘空间。
当然,如果您的应用程序只是在数据库中存储大量巨大的二进制文件,并且您所需要的只是执行简单的键查询并检索结果,那么这可能看起来有点“矫枉过正”。在这种情况下,nosql 数据库(例如 mongo 或 couch)可能会很方便。
希望有些帮助 ;)