如何从 'one of many' 模型中包含关系的 'many' 部分?

How to include the 'many' part of a relation from the 'one of many' model?

我正在尝试获取产品,包括它所属的类别。一个类别当然有很多产品,一个产品是一个类别的一部分。我是这样做的。

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

当我尝试执行此查询时,出现错误。 'Relation "Categories" is not defined for Product model'.

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

category.json

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

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

当我尝试获取所有类别的所有产品时,它没有问题。我很确定这是故意的。但是反过来我应该怎么做呢?我已经尝试将 Product 中的关系定义为 hasOne,记录在此处:https://docs.strongloop.com/display/public/LB/HasOne+relations。但这需要另一个对象中的外键,因此这显然仅适用于一对一关系。除此之外,我有点难过...有什么想法吗?

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

中创建该关系

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

把它想象成类似的东西,环回将调用一个函数Product.category

在 product.json

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

现在试试 -

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