将所有查询设置为 raw = true sequelize

Posted

技术标签:

【中文标题】将所有查询设置为 raw = true sequelize【英文标题】:Setting all queries to raw = true sequelize 【发布时间】:2014-12-01 10:29:13 【问题描述】:

我真的很喜欢在我的节点应用程序中使用 sequelize 作为我的 ORM,但是现在,当您查询时默认情况下它们传递 DAO 对象时,我有点恼火。如何始终将 raw 选项设置为 true?

【问题讨论】:

您的标题说:set raw = true,而您的问题是如何设置 raw= false... 【参考方案1】:

根据the doc:

如果您不提供除 SQL 之外的其他参数,则 raw 将被假定为 true,并且 sequelize 不会尝试对查询结果进行任何格式化。

话虽这么说:

Sequelize 对象有一个 [options.query=] 可选参数来设置 sequelize.query 的默认选项。 Source

你应该可以使用:

var sequelize = new Sequelize('database', 'username', 'password', query:raw:true)

【讨论】:

哇,这很有帮助,不过我有一个问题,当我使用 create 时,仍然有 DAO 对象,查询 raw: true 在我使用 find 时有所帮助,但它不会影响我使用创建。示例代码:Model.create(name: 'test', options: raw: true) 试试:Modelgroup.create(test, raw: true) github.com/sequelize/sequelize/wiki/… 您编辑了您的评论...Model.create(name: 'test', raw: true) 应该可以工作 好吧,这个问题:“将所有查询设置为 raw = true”得到了回答,也许可以为 Model.create() 提出一个特定的问题。你确定Model.create(name: 'test', raw: true) 不起作用吗?【参考方案2】:

你可以使用这个来创建:

Model.create(modelObject)
.then((resultEntity) => 
    const dataObj = resultEntity.get(plain:true)

看看这个:Set raw = true on Sequelize Model.create

【讨论】:

以上是关于将所有查询设置为 raw = true sequelize的主要内容,如果未能解决你的问题,请参考以下文章

在 Sequelize Model.create 上设置 raw = true

将布尔数组中的所有值设置为 true

将 Django 过滤器转换为 RAW SQL 查询 [重复]

rac存储替换

设置查询以搜索 dojo 数据网格的所有字段

如何使用 LEFT JOIN 查询将 RAW SQL 转换为 DQL