如何从“众多”模型中包含关系的“多个”部分?

时间:2016-10-22 14:10:22

标签: node.js express strongloop

我正在尝试获得一个产品,包括它所属的类别。课程类别包含许多产品,产品属于同一类别。我是这样做的。

Product.find({include: 'Categories'})

当我尝试执行此查询时,出现错误。 “关系”类别“未定义为产品型号”。

我根据此处找到的环回文档定义了这种关系:https://docs.strongloop.com/display/public/LB/HasMany+relations。由于一个类别有很多产品。这看起来如下:

category.json

"relations": {
  "products": {
    "type": "hasMany",
    "model": "Product",
    "foreignKey": "categoryId"
  }
},

在products.json中没有定义任何内容。我检查了复数当然,但他们都检查了。

当我尝试获取所有类别的所有产品时,它的工作没有问题。我很确定这是有意的。但我怎么能这样做呢?我已经尝试在Product中定义一个关系,如下所示:https://docs.strongloop.com/display/public/LB/HasOne+relations。但这需要在另一个对象中使用外键,因此显然只是用于一对一的关系。除此之外,我有点难过......有什么想法吗?

1 个答案:

答案 0 :(得分:5)

当您从产品方面包含它时,您必须在product.json

中创建该关系

正如您所提到的,产品只属于一个类别 - 这意味着关系名称应该是类别。

将其视为类似,loopback将调用函数Product.category

在product.json

中添加以下代码段
"relations": {
  "category": {
    "type": "belongsTo",
    "model": "Category",
    "foreignKey": "categoryId"
  }
},

现在尝试 -

Product.find({include: 'category'})