gpt4 book ai didi

node.js - 如何在数组中显示包含模型的特定列? Sequelize PostgreSQL

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

我有两个模型,分别是许可证和项目。

models.Licences.hasMany(models.Items, {
foreignKey: 'licenceId',
onDelete: 'CASCADE',
});
许可证可以有很多 ItemsItems 模型有 licenceIddescription
 try {
return await db.Licences.findAll({
order: [['createdAt', 'DESC']],
attributes: [
'id',
'desc',
'version',
[db.Sequelize.col('Items.description'), 'itemDesc']
],
include: [
{
model: db.Items,
attributes: []
},
],
});
} catch (error) {
throw error;
}
}
此方法仅返回一个项目描述。但是我想将响应返回为;
[
{
id: 1,
desc: 'LicenceOne',
itemDesc: [
"exone",
"extwo"
]
}
]
我怎样才能做到这一点?

最佳答案

您可以尝试以下方法并进行更改。

 try {
return await db.Licences.findAll({
order: [['createdAt', 'DESC']],
attributes: [
'id',
'desc',
'version',
],
include: [
{
model: db.Items,
attributes: ['description'],
},
],
});
} catch (error) {
throw error;
}
}
但是你会得到下面的输出。不完全是你想要的,但你可以重新处理所有数组对象,并将所有描述作为每个对象中的字符串数组。据我所知,Sequelize 不会直接自动处理数组。
[
{
id: 1,
desc: 'LicenceOne'
version: '1.1.1',
Items: [
{
description: 'the desctiption 1'
},
{
description: 'the desctiption 2'
},
{
description: 'the desctiption 3'
},
]
},
{
id: 2,
// and on...
}
]

关于node.js - 如何在数组中显示包含模型的特定列? Sequelize PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64682817/

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