gpt4 book ai didi

javascript - Sequelize include 作为属性而不是节点

转载 作者:行者123 更新时间:2023-11-29 15:25:19 25 4
gpt4 key购买 nike

在 Sequelize 中,是否有一种正确的方法来使用包含进行查询,而不是在节点中显示包含的实体,而是显示包含的实体属性和主要模型属性?

例子:

// Project belongsTo Customer

Project.findAll({
include: [{
model: Customer
}]
})

实际结果:

{
name: 'Project X',
customer: {
name: 'Customer Y',
street: 'Paddington street'
}
}

预期结果:

{
name: 'Project X',
customer_name: 'Customer Y',
customer_street: 'Paddington street'
}

最佳答案

我不认为有一种方法可以用 Sequelize 做到这一点。我建议这样得到你的结果,然后迭代你的结果以重命名你的属性(例如使用 Object.keys):

Project.findAll({
include: [{
model: Customer
}]
}).then(projects => {
return projects.map(project => {
Object.keys(project.customer).forEach(key => {
project['customer_' + key] = project.customer[key];
})
delete project.customer;
return project;
})
})

如果您真的需要直接从数据库中获取结果,您最终可以进行原始查询,但这样您将失去 ORM 的好处。

关于javascript - Sequelize include 作为属性而不是节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39849040/

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