【问题标题】:Include and fields filter don't work together?包含和字段过滤器不能一起工作?
【发布时间】:2016-04-14 17:05:18
【问题描述】:

我有 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。

【问题讨论】:

    标签: strongloop


    【解决方案1】:

    我浏览了环回连接器代码,看起来发生的事情是因为我没有在“字段”数组中包含外键字段,初始查询没有带回足够的信息来正确编写查询以带回相关对象。

    tl:dr

    在所有关系中包含外键。

    来源:https://github.com/strongloop/loopback/issues/2186 我包括了这个,因为我认为很多人在编程时不会去 github 分类或 bug 问题来为他们的问题找到解决方案,而是去 SO。这就是为什么我认为在这里发布这个问题很有用。

    【讨论】:

    • 感谢您提供此信息。我快疯了,你拯救了我的夜晚!您应该将其标记为答案;)
    猜你喜欢
    • 2020-02-04
    • 2020-02-13
    • 2020-11-24
    • 2021-08-08
    • 2018-02-27
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多