从 strongloop/loopback 获取连接数据

Getting joined data from strongloop/loopback

如何从两个连接的表中获取数据? 假设,有两个模型称为 Category (CategoryId, CategoryName) 和 Product(ProductId, ProductName, CategoryId),有没有办法得到这样的结果:(ProductId, ProductName, CategoryId, CategoryName)

您的类别模型和产品模型之间应该存在关系。一个类别 有许多 产品,每个产品 属于 一个类别。所以你的模型 json 文件应该是这样的

类别:

{
  "name":"Category",
  "properties":{
    "CategoryId": {
      "type":"Number",
      "id":1
    },
    "CategoryName":{
      "type":"String"
    }
  },
  "relations": {
    "products": {
      "type":"hasMany",
      "model":"Product",
      "foreignKey":"CategoryId"
    }
  }
}

产品

{
  "name":"Product",
  "properties":{
    "ProductId: {
      "type":"Number",
      "id":1
    },
    "ProductName":{
      "type":"String"
    },
    "CategoryId": {
      "type":"Number"
    }
  },
  "relations": {
    "category": {
      "type":"belongsTo",
      "model":"Category",
      "foreignKey":"CategoryId"
    }
  }
}

当然,这些 json 定义必须用相应的选项和数据源属性完成,只有您知道。

这两个模型之间的关系 将向环回浏览器添加端点,以便您可以查询特定类别的产品:

GET /api/Categorys/:id_category/products

产品所属的类别

GET /api/Products/:id_product/category

请注意,除非您为 Category 指定复数选项,否则其复数将为 Categorys。这不是错字。

最后,如果您想查询产品及其类别,可以使用 include 过滤器

GET /api/Products/:id_product?filter[include]=category

希望对您有所帮助。