【问题标题】:How to nested include through models relationships LOOPBACK?如何通过模型关系LOOPBACK嵌套包含?
【发布时间】:2018-07-01 16:20:01
【问题描述】:

让我们继续使用 Loopback Docs 中的 Patient - Physician 类比。让我们假设 Physician 模型如下所示:

{
   "id": "4654654654654654654",
   "name": "John Doe"
}

和 Patient 模型看起来基本相同(只有 id 和 name),并且两个模型通过 HasManyThrough 关系与文档中称为 Appointment 的模型相关联。 https://loopback.io/doc/en/lb2/HasManyThrough-relations.html

我的问题是,当您 GET 到 /api/physicians url 时,您如何查询响应以使其包含每位医生的预约日期和患者?

想要的输出:

{
  "id": "4654654654654654654",
  "name": "John Doe",
  "patients": [
     { "id": "1321232313", "name": "First Patient", "appointment_date": 1995-12-17T03:24:00 },
     { "id": "1321232313", "name": "Second Patient", "appointment_date": 1995-12-17T03:24:00 }
  ]
}

字段“appointment_date”是通过模型预约的日期,患者姓名是通过嵌套包含相同模型获得的。

有什么想法吗?

【问题讨论】:

  • 确实是类似的问题,但我的问题的重点是如何获取所有医师的列表,以及在每个医师 obj 中具有各自预约日期的所有患者的列表。您提到的问题是关于使用 psysician id 获取有关一个 Physician 查询实例的所有数据。
  • GET /api/physicians?filter[include]=patients

标签: loopbackjs strongloop loopback


【解决方案1】:

使用嵌套包含只需查看link它的帮助。

请检查此代码:

    physicians.find(
{
  include: {
  "relation": "Appointment",
  "scope": {
    "fields": ["id", "patientId", "AppointmentDate", "physiciansId"], /*need to include both Person and PersonID fields for this to work*/
    "include": {
      "relation": "patient",
      "scope": {
        "fields": {"id": true, "patienName": true},
         where: {id: patientId},
      }
    }
  }
}
}

【讨论】:

猜你喜欢
  • 2023-03-16
  • 2016-03-16
  • 2015-02-16
  • 1970-01-01
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-29
相关资源
最近更新 更多