Bookshelf.JS |如何在查询中使用where和orWhere

时间:2015-08-25 22:14:52

标签: javascript bookshelf.js

BookshelfJS有以下使用'查询':

的示例
model
  .query({where: {other_id: '5'}, orWhere: {key: 'value'}})
  .fetch()
  .then(function(model) {
    ...
  });

可以执行以下操作:

var whereObj = {
  'key1':'value1',
  'key2':'value2'
};

model
  .query({where: whereObj, orWhere: {key: 'value'}})
  .fetch()
  .then(function(model) {
    ...
  });

2 个答案:

答案 0 :(得分:11)

对于更复杂的查询,您可以使用:

.query(function(qb) {
                    qb.select('*');
                    qb.where(function () {
                        this.where('attr1', 1);
                        this.where('attr2','in' , [1,2,3]);
                    });
                    qb.orWhere(function () {
                        this.where('attr1', 2);
                        this.where('attr2','in' , [4,5,6]);
                    });
                })

答案 1 :(得分:1)

查看bookshelf-eloquent扩展,它直接在书架模型上公开了许多Knex.js功能。您的代码将简化为以下内容:

let result = await Model.where({other_id: 5}).orWhere('key', 'value').fetch();