使用包含filterjoin两个回送模型

我有两个模型购买和产品,和productId是共同的两个。

我需要从purchaseId的产品模型中findproductDetails。

所以我在Purchase模型中创build了一个名为getProductDetails的自定义端点。

这是我试图查询模型。

Purchase.find({ "filter": { include: { relation: 'Product', scope: { fields: ['productDesc'], } } }, where:{ id:purchaseId }, 

我的关系是Purchase belongsTo Product,foreignKey是productId

产品有许多购买

但是,即使我做了上述查询,我​​没有得到查询结果productDesc

我的模型关系错了吗?

假设产品和购买模型定义如下:

product.json

 { "name": "Product", "base": "PersistedModel", "idInjection": true, "properties": { "productDesc": { "type": "string", "required": false } }, "validations": [], "relations": { "purchases": { "type": "hasMany", "model": "Purchase", "foreignKey": "productId" } }, "acls": [], "methods": {} } 

purchase.json

 { "name": "Purchase", "base": "PersistedModel", "idInjection": true, "properties": {}, "validations": [], "relations": { "product": { "type": "belongsTo", "model": "Product", "foreignKey": "productId" } }, "acls": [], "methods": {} } 

我已经调整你的查询是这样的:

 let product = await Purchase.find({ include: { relation: 'product', scope: { fields: ['productDesc'] } }, where: { id: 1 } }) 

注意:使用ES6和ES7,但可以轻松重写到ES5

您必须使用toJSON将返回的模型实例与相关项目转换为普通的JSON对象。

我不确定,你为什么要创build一个新的端点。 环回提供的应该足够了。

例如

 GET /Purchases/{id}/product 

要么

 GET /Purchases/{id} 

与filter

 { "include": [ "product"]}