【问题标题】:Loopback 2.4: how to query certain fields of related model via REST APILoopback 2.4:如何通过 REST API 查询相关模型的某些字段
【发布时间】:2015-01-15 19:43:05
【问题描述】:

我有用户模型而不是关系数据库。

每个用户可以有许多“用户”,其中“chiefId”是 FK。

"relations": {
    "users": {
      "type": "hasMany",
      "model": "User",
      "foreignKey": "chiefId"
    },
}

我可以像这样查询每个主用户的相关用户:

GET /users?filter={"include":"users"}

但它返回完整个用户对象。

  • 如何只查询相关用户的“姓名”属性?
  • 也可以在一个请求中计算相关实例到服务器吗?

【问题讨论】:

标签: loopbackjs strongloop jugglingdb


【解决方案1】:

回复晚了,但我现在才遇到这个问题。有可能:

filter: {
 include:{
  relation: "users",
  scope: {
   fields:["name"]
  }
 }
}

【讨论】:

【解决方案2】:

据我了解,这个问题是关于在包含级别添加嵌套过滤器,这似乎尚不支持:https://groups.google.com/forum/#!msg/loopbackjs/T6onsYMJFOI/V4ILc3Obf3MJ

这可能不是解决此问题的最佳方法,但您可以做的是在 .afterRemote('find', ...) 挂钩中进行手动响应转换。

【讨论】:

    【解决方案3】:
    /users?filter[fields][0]=name
    

    请参阅https://github.com/strongloop/loopback-example-relations-basic 了解更多信息。

    【讨论】:

    • 这不适用于包含的对象。我只需要相关(或嵌入式)用户对象的“名称”!
    • 示例 repo 中的任何用例是否符合您的用例?也许这个 /api/customers?filter[include][reviews]=author&filter[where][age]=21
    • 我看到了用例,但它们不限制从关系返回的字段。正如 Alex Voitau 所说,这还不被支持。不过感谢您的回复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 2017-09-30
    相关资源
    最近更新 更多