gpt4 book ai didi

node.js - 使用 include in (Sequelize) 在不嵌套对象的情况下显示属性

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

我有一个模型 SKUValue,它与另外两个模型 VariantOptions ProductVariant 相关联。
我创建了一个 Sequelize 查询,将 SKUValue 值与 VariantOptions ProductVariant “左连接”,并带来结果。
Sequelize 查询

await SKUValue.findAll({
where: {
productId: '7bde8a1d-5f6c-4349-bfda-428399c88291'
},
include: [
{
model: VariantOption,
attributes: ['name']
},
{
model: ProductVariant,
attributes: ['name']
}
],
attributes: ['SKUId']
});
查询结果返回一个数组,其中属性 VariantOption ProductVariant 是一个嵌套对象,只有一个字段。
[
{
"SKUId": "72edd3ca-fa12-4234-ba8c-dd008eb416d5",
"VariantOption": {
"name": "Large"
},
"ProductVariant": {
"name": "Size"
}
},
{
"SKUId": "72edd3ca-fa12-4234-ba8c-dd008eb416d5",
"VariantOption": {
"name": "Red"
},
"ProductVariant": {
"name": "color"
}
}
]
我如何以这样的方式查询属性 VariantOption ProductVariant 的结果不返回嵌套对象,而只返回一个搅拌。
一般来说,我希望结果是这样的
[
{
"SKUId": "72edd3ca-fa12-4234-ba8c-dd008eb416d5",
"VariantOption.name": "Large",
"ProductVariant.name": "Size"
},
{
"SKUId": "72edd3ca-fa12-4234-ba8c-dd008eb416d5",
"VariantOption.name": "Red",
"ProductVariant.name": "Color"
}
]

最佳答案

我已经找到了我的问题的答案。
使用 Sequelize.literal ,我们可以轻松地在外部属性中添加内部属性。

return await SKUValue.findAll({
where: {
productId: '7bde8a1d-5f6c-4349-bfda-428399c88291'
},
include: [
{
model: VariantOption,
attributes: []
},
{
model: ProductVariant,
attributes: []
}
],
attributes: [
'SKUId',
[Sequelize.literal('"ProductVariant"."name"'), 'productVariant'],
[Sequelize.literal('"VariantOption"."name"'), 'variantOption']
]
});

关于node.js - 使用 include in (Sequelize) 在不嵌套对象的情况下显示属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67754660/

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