Knex.js 如何在BookshelfFJS查询生成器中与或组合?

Knex.js 如何在BookshelfFJS查询生成器中与或组合?,knex.js,bookshelf.js,Knex.js,Bookshelf.js,我不知道如何添加多个包含“或”查询的“和”查询 我最终想要的结果是这样的: select * from model where attribute1 = value1 and (attribute2 = value2 or attribute3 = value2) 这是我目前正在尝试的代码: let result = await new Model().query(qb => { qb.where('attribute1', 'value1') qb.where(func

我不知道如何添加多个包含“或”查询的“和”查询

我最终想要的结果是这样的:

select * from model where attribute1 = value1 and (attribute2 = value2 or attribute3 = value2) 
这是我目前正在尝试的代码:

let result = await new Model().query(qb => {
   qb.where('attribute1', 'value1')

   qb.where(function () {
      this.where('attribute2', 'value2')
      this.orWhere('attribute3', 'value2')

   })
}).fetchAll()
但问题是,查询只执行我编写的第一个条件

如果我先插入括号“或”条件,则输出为:

从模型中选择*,其中(attribute2=value2或attribute3=value2)

如果我先把正常条件放在第一位,输出是:

从attribute1=value1的模型中选择*

这些查询似乎没有用“and”语句“append”(如果这是正确的话)

我知道如果我使用正常的where语句,查询会“追加”

例如:

let result = await new Model().query(qb => {
   qb.where('attribute1', 'value1')
   qb.where('attribute2', 'value2')
}).fetchAll()
产出:

select * from model where attribute1 = value1 and attribute2 = value2

有什么建议吗?

看起来我在使用
qb.debug(true)
时看到了错误的查询,它们非常相似

上述代码按预期工作。很抱歉给您带来不便