我有3个型号A,B,C
A属于B. B属于C
我想查询A,包含B,包含C.但我只想要每个模型中的几个字段。 使用这样的过滤器而不指定任何"字段"工作正常并带回嵌套模型。
{
"include": {
"relation": "modelB",
"scope": {
"include": {
"relation": "modelC"
}
}
}
}
但是,只要我添加"字段"过滤属性到查询的任何级别,来自该级别的所有包含关系似乎都被忽略。所以如果我用这个过滤器查询:
{
"fields": ["modelAField"],
"include": {
"relation": "modelB",
"scope": {
"include": {
"relation": "modelC"
}
}
}
}
我只使用modelAField获得modelA实例 - 就好像我没有要求包含modelB一样。如果我省略"字段"在顶级并将其添加到modelB范围,然后我得到modelA的所有字段,我要求的modelB字段的子集,但没有包含modelC。
答案 0 :(得分:4)
我浏览了loopback-connector代码,看起来发生了什么,因为我没有在我的"字段中包含外键字段"数组,初始查询没有带回足够的信息来正确编写查询以带回相关对象。
<强> TL:博士强>
在所有关系中包含外键。
来源:https://github.com/strongloop/loopback/issues/2186 我把它包括在内,因为我认为许多人在编程时不会去github分类或bug问题来找到解决他们问题的方法,而不是SO。这就是为什么我认为在这里发布这个问题很有用。