Rya*_*ons 4 javascript sequelize.js
尝试在where子句中强制转换列以搜索查询。很难找到有关如何执行此操作的可靠文档。有任何想法吗?
return await User.findAndCountAll({
where: {
[Op.or]: {
'email': { [Op.iLike]: `%${query}%` },
'$id::text$': { [Op.iLike]: `%${query}%` } // id is int but needs to be string for searching
}
},
limit,
offset: page * limit,
order: [[sortBy, sortOrder.toUpperCase()]],
raw: true,
logging: console.log
});
Run Code Online (Sandbox Code Playgroud)
我认为这是您要搜索的内容:
where: {
[Op.or]: [
{email: {[Op.iLike]: `%${query}%`}},
sequelize.where(
sequelize.cast(sequelize.col('User.id'), 'varchar'),
{[Op.iLike]: `%${query}%`}
),
],
},
Run Code Online (Sandbox Code Playgroud)
由于 @leogoesger 的答案不适用于 Postgres 中的 JSONB 字段,我尝试了以下方法:
where: {
["data.createdAt::timestamp"]: {
[Op.lt]: "now() - interval '3 days'"
}
}
Run Code Online (Sandbox Code Playgroud)
你瞧,它产生了:
WHERE CAST(("User"."data"#>>'{createdAt}') AS TIMESTAMP) < now() - interval '3 days'
使用 Sequelize 5.1.0。
| 归档时间: |
|
| 查看次数: |
3535 次 |
| 最近记录: |