nodejs中的ORM Bookshelf + postgresql或MongoDB数据库?

时间:2015-10-01 10:32:57

标签: node.js mongodb postgresql orm

我需要在两个数据库之间进行选择。在一种方法中,它将存储关系数据,但要使用它我想使用Bookshelf ORM。换句话说,我可以使用MongoDB,并将数据存储为对象,而无需使用ORM将数据用作对象。

那么,CRUD方法首选哪个?

应用程序旨在尽可能快。

数据样本:

{
  "ownedBy": "(someProjectID)",
  "keyword": "node",
  "references": [
    {
      "type": "post",
      "groupId": -1478414,
      "messageId": 14578,
      "text": "Node.js is great language!"
    },
    {
      "type": "comment",
      "groupId": -1478414,
      "messageId": 744114,
      "text": "Yeah, I agree. Node is very flexible"
    }
  ]
}

2 个答案:

答案 0 :(得分:3)

在这种情况下,我们可以通过询问以下用例来触及一些要点。

  • 你需要静态方案吗?
  • 您需要数据限制吗?
  • 您是否需要复杂且强大的(类似sql)查询语言?
  • 您是否需要轻松地将数据库与其他数据存储系统集成?
  • 您是否需要与外键,表关系,复杂连接斗争?
  • 您需要存储过程吗?

如果问题的答案为否,则应选择 MongoDB

然后;

  • 您将能够更快地开发您的应用程序。
  • 您将能够利用有关node.js和mongoDb的大量资源。
  • 您将只拥有动态方案(集合 - >文档)。
  • 如果需要连接等,您可以使用mongodb中的嵌套文档轻松处理复杂连接。
  • 您将编写javascript并创建类似json的文档,并将查询创建为json。这种情况也会对您的开发时间产生积极影响。

因此可以根据需要更改用例。在这种情况下,您需要更快的开发,并且还只需使用node.js创建CRUD应用程序。我建议你 MongoDB 。祝你好运。

答案 1 :(得分:1)

这实际上取决于您的索引和查询。 请参阅http://tiborsimko.org/postgresql-mongodb-json-select-speed.html以了解哪个更适合您的用例。

在我看来,两者的最新版本都很出色。 Mongo 2.4版之前没有,但那是历史。 我会和Mongo一起去,因为发展速度更快,没有人可以提出异议。除非您彻底更改数据库模型,否则您也不必担心数据库迁移。请注意,您可以将postgres用作文档存储,同时具有相同的开发速度优势。理想情况下,对最重要的用例进行简单的基准测试,并在两者上运行它。