MongoDB是否适合这个?

时间:2012-06-11 13:04:48

标签: mongodb nosql

在我正在构建的系统中,它本质上是一个问题跟踪系统,但有各种问题模板。某些问题类型的格式与其他类型不同。

我最初计划使用带有主issues表的MySQL和包含key =>的issues_meta表。价值对。但是,我认为NoSQL(MongoDB)可能是更好的选择。

  

MongoDB能否为我提供生成“标准”的能力   报告,如类型问题#,按类型分类的问题数量,#of   每个人分配的问题等?我问这个因为我读了几个   消息人士称Mongo不善于报道。


我还计划将我的审计日志存储在Mongo中,因为我希望所有操作都有一个“表”(对任何表的修改)。在Mongo中,我可以存储容易更改的每个字段,因为它是无模式的。这是个坏主意吗?

我还应该知道其他什么,Mongo会为我想要的东西工作吗?

2 个答案:

答案 0 :(得分:1)

MongoDB肯定会工作(如果你愿意,你可以使用capped collections自动删除旧记录),但你应该问问自己,它是否适合这项任务呢?对于用例,您已经描述了使用Redis(简单和足够快)或Riak(如果您非常关心日志数据)的更好选择。

答案 1 :(得分:1)

我认为MongoDB将完全匹配该用例。

  • MongoDB集合是异构的,这意味着您可以将包含不同字段的文档存储在同一个包中。因此,不同的报告模板不会成为显示阻止者。您将能够使用单个文档对完整问题进行建模。

  • MongoDB也非常适合日志记录。您可能对上限集合感兴趣。

  • 如果您需要在文档之间建立关系关联,您也可以拥有它。

  • 如果您使用的是Ruby,我可以向您推荐Mongoid。它会让它变得更容易。此外,它还支持文档版本控制。