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