我的餐桌产品和子餐桌系列有太多的关联
const Product = sequelize.define('product', {
id: {type: Sequelize.INTEGER, autoIncrement: true, allowNull: false, primaryKey: true},
order: Sequelize.STRING
})
const Series = sequelize.define('series', {
id: {type: Sequelize.INTEGER, autoIncrement: true, allowNull: false, primaryKey: true},
name: Sequelize.STRING,
})
关系
Product.belongsTo(Series);
Series.hasMany(Product);
我想获得所有产品,其中系列名称是一些文本,产品订单名称是一些文本。
exports.searchProduct = async (req, res, next) => {
const name = req.body.name || ''
const order = req.body.order || ''
try {
const series = await Series.findAll({
where: {
name: {[Op.like]: '%' + name + '%'}}
});
const products = await series.getProducts //<= get stuck here
res.status(200)
.json({result: products})
}
catch (err) {
if (!err.statusCode) {
err.statusCode = 500
}
next(err);
}
}
我设法查询系列,但被困在查询带有订单名称的产品结果。那么如何查询带有订单名称的产品结果呢?我试图在getProducts
中添加where子句,但是错误getProducts
不是函数
答案 0 :(得分:1)
怎么样
cosnt products = await Products.findAll({
where: {
order: {[Op.like]: '%' + order + '%'}
},
include: [
{
model: Series,
where: {
name: {[Op.like]: '%' + name + '%'}
},
required: true
}
]
})