【问题标题】:ORM Bookshelf + postgresql or MongoDB database in nodejs?nodejs中的ORM Bookshelf + postgresql或MongoDB数据库?
【发布时间】:2015-12-29 09:00:32
【问题描述】:

我需要在两个数据库之间进行选择。在一种方法中,它将存储关系数据,但要使用它,我想使用 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"
    }
  ]
}

【问题讨论】:

    标签: node.js mongodb postgresql orm


    【解决方案1】:

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

    • 您需要静态方案吗?
    • 您需要数据约束吗?
    • 您需要复杂而强大的(类似sql)查询语言吗?
    • 您是否需要轻松地将您的数据库与其他数据存储系统集成?
    • 您是否需要处理外键、表关系、复杂连接?
    • 您需要存储过程吗?

    如果该问题的答案是否定的,您应该选择MongoDB

    然后;

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

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

    【讨论】:

      【解决方案2】:

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

      在我看来,两者的最新版本都非常出色。 Mongo pre version 2.4 不是,但那是历史。 我会选择 Mongo,因为开发速度更快,没有人可以质疑这一点。除非您彻底更改数据库模型,否则您也不必担心数据库迁移。请注意,您可以使用 postgres 作为文档存储以及具有相同的开发速度优势。理想情况下,对最重要的用例做一个简单的基准测试并在两者上运行它。

      【讨论】:

        猜你喜欢
        • 2023-03-25
        • 2019-06-06
        • 2021-09-02
        • 1970-01-01
        • 2014-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-11
        相关资源
        最近更新 更多