【问题标题】:Sails.js Waterline ORM or Normal Query. Which one is better?Sails.js Waterline ORM 或普通查询。哪一个更好?
【发布时间】:2018-09-26 10:15:05
【问题描述】:

Sails.js 水线 ORM 是否比插入普通查询并执行它更好? Sails.js 水线 ORM 将在其后端生成一个普通查询并执行它,那么我们可以简单地使用普通查询而不是这个水线 ORM 吗?谁能帮忙?

Route.findOne({id: routeId}).populate(['operator_id']).then(function(result) {      
  return result
})

这里上面的水线 ORM 将只生成下面的 SQL 查询。那么为什么我们必须使用水线 ORM 呢?它仅对使用相同代码调整各种数据库有用吗?

SELECT *
    FROM new_route
    INNER JOIN operator
      ON new_route.operator_id = operator.id
    WHERE new_route.id = ?

有人可以帮我解决这个问题吗?提前致谢。

【问题讨论】:

    标签: node.js orm sails.js waterline


    【解决方案1】:

    这不是更好; Waterline ORM 提供了一个uniform API 用于访问数据库,它的目标是consistency 跨适配器,在某些情况下你不能将它用于一些复杂的查询,你选择datastore.manager 来例如,访问原始 Mongo 集合。

    【讨论】:

    • 感谢您的回复。那么我可以直接查询本身而不是这个 ORM 吗?因为找到水线 ORM 的方法需要更多时间来编写复杂的查询。
    • 我认为对于简单的查询(创建、读取、更新、删除...),水线就足够了,尤其是对于整个应用程序的一致性而言,直接对这些查询使用原生查询是多余的。
    • 使用像 Waterline 这样的适配器的一个优点是可以通过很少的代码更改来切换数据库实现(例如在缩放期间)。将其与将原始 SQL 查询转换为任何 nosql 实现进行比较。
    • 嘿@HamzaFatmi 我看到你总是提出问题,我正在迁移到 v1 但我遇到了多个错误,你能帮帮我吗?我不能发帖
    猜你喜欢
    • 2014-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    相关资源
    最近更新 更多