利用Sequelize進行模糊查詢的時候,參考別人的代碼使用$like
運算符:html
const getArticleList = async (ctx) => { let { title } = ctx.query, titleFilter = title ? { title: { $like: `%${title}%` } } : {} ... await Article.findAndCountAll({ where: titleFilter, include: [ ... ], ... }) ... }
可是我運行時報錯:
git
而後老老實實翻中文文檔改爲這樣以後,就運行正常了。github
const Sequelize = require('sequelize'); const Op = Sequelize.Op; let titleFilter = title ? { title: { [Op.like]: `%${title}%` } } : {}
據文檔來講,Op.like
是正兒八經的操做符,而$like
實際上是運算符別名,由於Sequelize 容許將特定字符串設置爲操做符的別名。就是說,使用$like
的正確打開方式是:async
const Op = Sequelize.Op; const operatorsAliases = { $like: Op.like } const sequelize= new Sequelize(db, user, pass, { operatorsAliases })
這樣子之後,咱們才能使用$like
代替[Op.like]
。ui
完~如有不足,請多指教,萬般感謝!spa