Reputation: 516
I have a method like this:
const getAllRequest = async (page, pageSize, order) => {
try {
const requests = await Request.findAndCountAll({
where = {
[Op.or]: [
sequelize.where(sequelize.col('requests.id'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.user_id'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.uuid'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.status'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.csv_url'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('request_urls.url'), { [Op.like]: `%${req.query.queryStr}%` }),
]
},
raw: true,
attributes: ['id', 'uuid', 'userId', 'status', 'csvUrl', 'requestURLs.url', 'createdAt', 'updatedAt'],
include: [{
model: RequestUrl,
as: "requestURLs",
where: { type: 'brand' },
attributes: []
}],
subQuery: false,
offset: page * pageSize,
limit: pageSize,
order
});
return {
status: 200,
message: "List of requests.",
requests
}
} catch (error) {
return Promise.reject({
status: 500,
message: "Something went wrong.",
error
});
}
}
but it doesn't return data if try to filter using included model attributes. Instead it returns:
Error: Unknown column 'request_urls.url' in 'where clause'
Please help me to figure this out.
Upvotes: 0
Views: 803
Reputation: 1265
Your where
condition should be as follows -
where = {
[Op.or]: [
sequelize.where(sequelize.col('requests.id'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.user_id'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.uuid'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.status'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requests.csv_url'), { [Op.like]: `%${req.query.queryStr}%` }),
sequelize.where(sequelize.col('requestURLs.url'), { [Op.like]: `%${req.query.queryStr}%` }),
]
},
I hope it helps!
Upvotes: 1
Reputation: 22758
Pay attention to the difference: request_urls and as: "requestURLs"
Upvotes: 1