【问题标题】:loopback.io multiple includesloopback.io 多个包含
【发布时间】:2015-11-02 15:54:52
【问题描述】:

我有一个带有 MongoDB 数据库的 loopback.io API。 我有一个名为 Project 的模型,其中包含 2 个 hasMany 关系

  • Project 有许多 ProjectArticle 对象
  • Project 有许多 ProjectWorkHours 对象

当我运行时,我会发出一个请求:http://0.0.0.0:3000/api/Projects?filter[include][projectArticles]

收到如下回复,很好

{
    "title": "Project 1",
    "description": "My project number one",
    "dateCreated": "2015-10-31T00:00:00.000Z",
    "id": "5634b3af340faf570c7e70a8",
    "projectArticles": [
      {
        "articleName": "brick",
        "quantity": 5,
        "unitPrice": 2,
        "id": "5634b9ea5ab833960c8fbf6d",
        "projectId": "5634b3af340faf570c7e70a8"
      }
    ]
  }

当我这样做时:http://0.0.0.0:3000/api/Projects?filter[include][workHours] 我得到正确答案:

{
    "title": "Project 1",
    "description": "My project number one",
    "dateCreated": "2015-10-31T00:00:00.000Z",
    "id": "5634b3af340faf570c7e70a8",
    "workHours": [
      {
        "description": "blabla",
        "startDate": "2015-10-31T00:00:00.000Z",
        "endDate": "2015-10-31T00:00:00.000Z",
        "id": "5634e11d5f6471f10d2e0dd7",
        "workHourId": "5634b3af340faf570c7e70a8"
      },
      {
        "description": "blabla 2",
        "startDate": "2015-10-31T00:00:00.000Z",
        "endDate": "2015-10-31T00:00:00.000Z",
        "id": "5634e1265f6471f10d2e0dd8",
        "workHourId": "5634b3af340faf570c7e70a8"
      }
    ]
  }

但是我如何将这两个包含在一个请求中?所以我有以下结果:

{
    "title": "Project 1",
    "description": "My project number one",
    "dateCreated": "2015-10-31T00:00:00.000Z",
    "id": "5634b3af340faf570c7e70a8",
    "workHours": [
      {
        "description": "blabla",
        "startDate": "2015-10-31T00:00:00.000Z",
        "endDate": "2015-10-31T00:00:00.000Z",
        "id": "5634e11d5f6471f10d2e0dd7",
        "workHourId": "5634b3af340faf570c7e70a8"
      },
      {
        "description": "blabla 2",
        "startDate": "2015-10-31T00:00:00.000Z",
        "endDate": "2015-10-31T00:00:00.000Z",
        "id": "5634e1265f6471f10d2e0dd8",
        "workHourId": "5634b3af340faf570c7e70a8"
      }
    ],
    "projectArticles": [
      {
        "articleName": "brick",
        "quantity": 5,
        "unitPrice": 2,
        "id": "5634b9ea5ab833960c8fbf6d",
        "projectId": "5634b3af340faf570c7e70a8"
      }
    ]
  }

我试过这个:http://0.0.0.0:3000/api/Projects?filter[include][workHours]&[include][projectArticles] 但它只应用第一个过滤器,第二个过滤器被忽略了

有什么想法吗?

【问题讨论】:

    标签: loopbackjs strongloop


    【解决方案1】:

    我找到了这样做的语法

     http://0.0.0.0:3000/api/Projects?filter={"include":["workHours", "projectArticles"]}
    

    【讨论】:

    • 如果您继续阅读文档:docs.strongloop.com/display/public/LB/Include+filter。你也可以像以前一样使用 REST /customers?filter[include]=projectArticles&filter[include]=workHours
    • 知道哪个解决方案有偏好吗?使用 JSON 语法还是使用方括号进行挖掘?我猜它最终会在查询数据库之前被翻译成相同的东西?
    • 你可以使用任何适合你的。这只是个人喜好。我只是写了它,因为您使用的是 REST 之一。我使用过滤查询一,因为它对我来说更容易理解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2015-11-18
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多