Sequelize included 模型结果键是字符串
Sequelize included Model result keys are strings
原谅我有限的知识,我使用 Sequelize 大约一周了,
Models.PlannerModel.Builds.findAll({
raw: true,
where: {
ProposedDelivery: { [Op.gt]: moment().format("YYYY-MM-DD") },
description: { [Op.ne]: null },
description: { [Op.ne]: " " },
description: { [Op.not]: null },
},
include: [
{
model: Models.PlannerModel.Unit,
required: true
},
],
上面的结果正如您所期望的,除了 include 中字段的所有键都是字符串,所以在我的 Pug template/class 中引用它们必须用括号
总的来说不是世界末日只是想知道我是否做错了什么?
干杯!
关闭 raw
以获取嵌套模型对象以及获取普通对象,对每个返回的模型实例使用 get({ plain: true})
:
const builds = await Models.PlannerModel.Builds.findAll({
where: {
ProposedDelivery: { [Op.gt]: moment().format("YYYY-MM-DD") },
[Op.and]: [{
description: { [Op.ne]: null },
}, {
description: { [Op.ne]: " " },
}, {
description: { [Op.not]: null },
}
]
},
include: [
{
model: Models.PlannerModel.Unit,
required: true
},
]
})
const plainBuilds = builds.map(x => x.get({ plain: true }))
请注意我用description
改变了条件。在您的条件版本中,只有最后一个会起作用,因为如果同一对象中有多个相同的键,JS 只会保存最后一个键。
原谅我有限的知识,我使用 Sequelize 大约一周了,
Models.PlannerModel.Builds.findAll({
raw: true,
where: {
ProposedDelivery: { [Op.gt]: moment().format("YYYY-MM-DD") },
description: { [Op.ne]: null },
description: { [Op.ne]: " " },
description: { [Op.not]: null },
},
include: [
{
model: Models.PlannerModel.Unit,
required: true
},
],
上面的结果正如您所期望的,除了 include 中字段的所有键都是字符串,所以在我的 Pug template/class 中引用它们必须用括号
总的来说不是世界末日只是想知道我是否做错了什么?
干杯!
关闭 raw
以获取嵌套模型对象以及获取普通对象,对每个返回的模型实例使用 get({ plain: true})
:
const builds = await Models.PlannerModel.Builds.findAll({
where: {
ProposedDelivery: { [Op.gt]: moment().format("YYYY-MM-DD") },
[Op.and]: [{
description: { [Op.ne]: null },
}, {
description: { [Op.ne]: " " },
}, {
description: { [Op.not]: null },
}
]
},
include: [
{
model: Models.PlannerModel.Unit,
required: true
},
]
})
const plainBuilds = builds.map(x => x.get({ plain: true }))
请注意我用description
改变了条件。在您的条件版本中,只有最后一个会起作用,因为如果同一对象中有多个相同的键,JS 只会保存最后一个键。