Javascript 使用include过滤器在环回中连接两个模型
我有两种型号和产品,productId对这两种型号都是通用的 我需要从purchaseId的产品模型中查找productDetails 因此,我在购买模型中创建了一个自定义端点,名为getProductDetails 这就是我试图查询模型的方式Javascript 使用include过滤器在环回中连接两个模型,javascript,node.js,loopbackjs,Javascript,Node.js,Loopbackjs,我有两种型号和产品,productId对这两种型号都是通用的 我需要从purchaseId的产品模型中查找productDetails 因此,我在购买模型中创建了一个自定义端点,名为getProductDetails 这就是我试图查询模型的方式 Purchase.find({ "filter": { include: { relation: 'Product',
Purchase.find({
"filter": {
include: {
relation: 'Product',
scope: {
fields: ['productDesc'],
}
}
},
where:{
id:purchaseId
},
我的亲戚是
购买属于产品,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
必须使用将返回的模型实例及其相关项转换为普通JSON对象
我不确定,为什么要创建一个新端点。环回提供的数据应该足够
e、 g
或
带过滤器
{ "include": [ "product"]}
GET /Purchases/{id}
{ "include": [ "product"]}