我希望能够在查询中嵌套我的包含,但我希望结果不嵌套。
例如:
db.a.findAll({
where: {id: id},
include: [
{ model: db.b, include: [
{ model: db.c, include: [
{ model: db.d }
]}
]}
]
})
...
返回这样的东西:
[
{
a: {
...
b: {
...
c: {
...
d: {
...
}
}
}
}
}
]
但我想要这个:
[
{
a: {
...
b: {
...
},
c: {
...
},
d: {
...
}
}
}
]
这是否可以在不重构模型/表格的情况下实现?
最佳答案
我找到了如何执行此操作,但这不是最理想的方法。您可以像这样手动重新链接对象:
db.a.findAll({
where: {id: id},
include: [
{ model: db.b, include: [
{ model: db.c, include: [
{ model: db.d }
]}
]}
]
}).then(function(a) {
//you may need to iterate over an array
a.setDataValue('d', a.b.c.d);
a.b.c.setDataValue('d', null);
a.setDataValue('c', a.b.c);
a.b.setDataValue('c', null);
}
关于mysql - 在 sequelize.js 中,是否可以取消嵌套包含嵌套的查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43786556/