我想从数据库中搜索一些行。
Phones.findAndCountAll({
where: {
id: (req.body.id) ? req.body.id : { $ne: null },
description: (req.body.description) ? { $like: '%' + req.body.description.trim() + '%' } : { $ne: null },
price: {
$and: {
{(req.body.st_price) ? {$gte: req.body.st_price} : { $ne: null } },
{(req.body.en_price) ? {$lte: req.body.en_price} : { $ne: null } },
}
}
}
})
但是当我运行它时,它不起作用。我是否要搜索request.body。存在。我应该使用介于运算符吗? 我该如何解决这个问题?
答案 0 :(得分:1)
我认为,您应该先构建查询,然后在sequelize
中使用它:
let price_conditions = {};
if(req.body.st_price){
price_conditions['$gte'] = req.body.st_price;
}
if(req.body.en_price){
price_conditions['$lte'] = req.body.st_price;
}
price_conditions['$ne'] = null;
Phones.findAndCountAll({
where: {
id: (req.body.id) ? req.body.id : { $ne: null },
description: (req.body.description) ? { $like: '%' + req.body.description.trim() + '%' } : { $ne: null },
price : price_conditions
}
})
有关详细信息: DO READ