如何在where子句中使用包含运算符的运算符?

时间:2017-11-06 00:18:05

标签: sequelize.js

我有以下型号:

AuthorModel.hasMany(BookModel);
BookModel.belongsTo(AuthorModel);

我想选择一个作者,其名称或其中一本书的标题与搜索字符串匹配。

类似的东西:

            Author.findOne({
                where: {
                    [Op.or]: [
                        { name: 'test'},
                        {'books.title':'test'}
                    ]
                },
                include: [{
                    model: Book
                }]
            })

无论我尝试什么,我总是最终得到:Unknown column 'books.title' in 'where clause'

1 个答案:

答案 0 :(得分:1)

您只需在where内移动include条款。

Author.findOne({
  include: [{
    model: Book,
    where: {
      [Op.or]: [
        { '$author.name$': 'test'},
        { title: 'test'}
      ]
    },
  }]
})