我正在使用JSON对象来构建这样的Knex查询:
{where: {id: '5'}
如何对like
或greater than
等运算符使用相同的查询格式(对象语法)?
答案 0 :(得分:2)
您可以使用 where / andWhere 。以下代码显示的更新仅在 user_id = userId 和 book_reference = bookName 且结果< RES 即可。
knex('user_books')
.where({
user_id: userId,
book_reference: bookName
})
.andWhere('result', '<', res)
.update({
'updated_at': bookshelf.knex.raw('CURRENT_TIMESTAMP'),
'text_done': true,
})
答案 1 :(得分:1)
我认为不可能。看the relevant source code of the query builder,看起来像是:
_objectWhere(obj) {
const boolVal = this._bool();
const notVal = this._not() ? 'Not' : '';
for (const key in obj) {
this[boolVal + 'Where' + notVal](key, obj[key]);
}
return this;
}
基本上只使用两个参数调用适当的Where
函数(因此没有运算符,这意味着=
)