gpt4 book ai didi

node.js - 在 nodejs 中的内部连接表之后,Sequelize ORM 返回一个奇怪的响应

转载 作者:行者123 更新时间:2023-12-03 22:23:22 24 4
gpt4 key购买 nike

我使用 sequelize orm 来管理我的数据库 (mysql)。

我做了一个内部连接,效果很好,但是连接的表返回一个奇怪的变量的问题。

这是我的代码

const getReports = id => {
return new Promise((resolve, reject) => {
models.Report.findAll({
where: { companyID: [513603324, 515490704, 511493827] },
include: [{
model: models.Reports_type,
attributes:["name"],
required: true
}],
raw: true
})
.then(result => {
resolve(result);
})
.catch(err => {
reject(err);
});
});
};

输出是
[
{
"id": 8,
"creatorUserID": 1,
"currentUserEditorID": 1,
"companyID": 511493827,
"stageID": 1,
"scenarioID": 1,
"typeID": 1,
"year": 2020,
"deadLine": "2019-10-30T22:00:00.000Z",
"createdAt": "2019-10-29T08:31:19.000Z",
"updatedAt": "2019-10-29T08:31:19.000Z",
"Reports_type.name": "excelent",
"companyName": "energy",
}
]

问题是我觉得很奇怪:
"Reports_type.name"

我希望输出是:
"name"

最佳答案

之前已经讨论过这个主题 - 请参阅 this

为了避免前缀,必须在主模型而不是包含的模型中指定属性。下面的示例应该生成 ReportReports_type.name 中的所有字段。注意:Reports_type 的别名可能与我猜测的略有不同 - 如果您得到“字段不存在”,请从生成的 SQL 中找到正确的别名。

 models.Report.findAll({
where: { companyID: [513603324, 515490704, 511493827] },
include: [{
model: models.Reports_type,
attributes:[], // suppress here
required: true
}],
raw: true,
attributes: {
include: [[Sequelize.col("reports_types.name"), "name"]] // include here; table alias may be a little different!
}
})

关于node.js - 在 nodejs 中的内部连接表之后,Sequelize ORM 返回一个奇怪的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58608800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com