提问人:V S Vuca 提问时间:6/5/2023 更新时间:6/5/2023 访问量:91
如何避免在带有嵌套包含查询的 Sequelize 查询中嵌套过多?
How to avoid too much nesting in Sequelize queries with nested include queries?
问:
{
"id": 1,
"uuid": "20-zdswny16so",
"productName": "Air Jordan 1",
"description": "Legendary and iconic.",
"retailPrice": "22000",
"wholesalePrice": 21000,
"hex": "#000000",
"gender.id": 3,
"gender.name": "women",
-> "product.category.id": 1, <<<<<<<<
-> "product.category.name": "sneakers", <<<<<<<<
"color.id": 2,
"color.name": "black"
}
在提供答案之前: 我知道“嵌套”这个词在这里不太合适。 我首先使用“raw”来避免对象嵌套
查询:
const items = await models.Item.findAll(
{
raw:true,
attributes: [
"id",
"uuid",
'product.productName',
"product.description",
"retailPrice",
"wholesalePrice",
"color.hex"
],
include: [{
model:models.Gender,
attributes:['id','name'],
},
{
model: models.Product,
attributes:[],
include: [{
model:models.Category,
attributes:['id','name'],
}]
},{
model: models.Color,
attributes:['id','name'],
}],
});
正如你所看到的,有多层次的包括:
对于性别、产品、颜色模型,它还可以(第一级),但类别模型等会很糟糕!
这个想法 product.category.id 成为----> category.id
将列名称从 Category 移动到 Product ATTRIBUTES 并不像将 Product 移动到 TOP QUERY 那样有效(如果解释不当,则会 sry)。
答: 暂无答案
评论
attributes