我希望能够在查询中嵌套我的包含,但我希望结果是非嵌套的。
例如:
public Class TestRel
{
public string col1 {get;set;}
public string col2 {get;set;}
}
var Realobj = new TestRel()
Realobj.col1 = "hi";
Realobj.col2 = "hello";
返回类似这样的内容:
db.a.findAll({
where: {id: id},
include: [
{ model: db.b, include: [
{ model: db.c, include: [
{ model: db.d }
]}
]}
]
})
...
但我想要这个:
[
{
a: {
...
b: {
...
c: {
...
d: {
...
}
}
}
}
}
]
如果不重构模型/表格,这可能吗?
答案 0 :(得分:0)
我发现了如何做到这一点,但这不是最理想的做法。您可以手动重新链接对象:
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);
}
答案 1 :(得分:-2)
您只需要一个包含,然后嵌套您需要的所有模型:
db.a.findAll({
where: {id: id},
include: [
{
model: db.b
},{
model: db.c
},{
model: db.d
}
]
})