Sequelize - 如何搜索多个列?

waf*_*ffl 1 javascript sql node.js sequelize.js

我有一个包含多个专栏的文章数据库,希望能够同时搜索titledescription.

目前,我有:

Article.findAll({
  where: {
    title: { like: '%' + searchQuery + '%' }
  }
});
Run Code Online (Sandbox Code Playgroud)

我怎样才能搜索描述?

我已经阅读了sequelize文档,甚至在本Complex filtering / OR / NOT queries节中也看过,但这些例子似乎只能解释一栏中的搜索.

ler*_*dev 10

const Op = Sequelize.Op;
Article.findAll({
  where: {
    title: { [Op.like]: '%' + searchQuery + '%' },
    description: { [Op.like]: '%' + searchQuery2 + '%' }
  }
});
Run Code Online (Sandbox Code Playgroud)

以上将确保title包括searchQuery description包括searchQuery2.如果您希望在文章包含两者之一时返回结果,则以下查询应该有效:

Article.findAll({
  where: {
    title: { like: '%' + searchQuery + '%' },
    description: { like: '%' + searchQuery2 + '%' }
  }
});
Run Code Online (Sandbox Code Playgroud)


A_J*_*A_J 5

续集 >= 4.12

Article.findAll({
 where = {
  [Op.or]: [
    { name: { [Op.like]: `%${req.query.query_string}%` } },
    { description: { [Op.like]: `%${req.query.query_string}%` } }
  ]
}
});
Run Code Online (Sandbox Code Playgroud)

仅供参考:mysql 不支持 iLike ;)