Я работаю над расширенным поиском с несколькими опциями с Sequelize и Node.js. Один из вариантов - между двумя ценами.
const search2 = req.body.search2;
const title = req.body.title;
const price = req.body.price;
const prices = req.body.prices;
const prices2 = req.body.prices2;
const address = req.body.address;
Product.findAll({
where: { [Op.and]:
{ price: { [Op.like]: '%' + price + '%' },
category: { [Op.like]: '%' + title + '%' },
description: { [Op.like]: '%' + search2 + '%' },
Renting: { [Op.between]: [prices, prices2] },
address: { [Op.like]: '%' + address + '%' } } }
, order: [['createdAt', 'DESC']], limit, offset
})
const prices
и const prices2
- это два входа, в которые пользователь может записать минимальную и максимальную цену.
В моей модели Sequelize I есть столбец «Аренда» (для цены аренды, его INTEGER). кажется, что все работает нормально, но проблема в том, что я получаю между ценами и ценами2 '50' И '200'. (например, если я ищу от 50 до 200). введите изображение, например , которое дает мне пустые или неправильные результаты для разных чисел. Я заметил, что если я поставлю числа рядом с ценами и ценами2, например, напишу: Аренда: {[Op.between]: [50, 200]}, я получу правильные результаты. 50 И 200 (без '') введите изображение, например , что хорошо. Но это просто, если я сам определил числа.
Может кто-нибудь помочь мне найти решение, как получить правильный результат, используя эти два входа (цены и цены2)?