2016-03-21 4 views
4

Я хочу выполнить запрос/операцию WHERE - IN, но нормальный, где дает ошибку.выполнить где в запросе в bookshelf.js

Я хочу это

select * from `calendar_event_rsvp` where `event_id` in ('1', '2', '3') 

Но ниже кода приводит к

select * from `calendar_event_rsvp` where `event_id in` = '1', '2', '3' 

Код

CalendarEventRSVP.forge() 
       .where({ 
        "event_id": event_ids 
       }) 

Как мне это сделать в bookshelf.js

ответ

5

Попробуйте добавить оператор:

CalendarEventRSVP.forge() 
      .where('event_id', 'in', event_ids) 

Или используйте knex-х whereIn:

CalendarEventRSVP.forge() 
      .query({whereIn: {event_id: event_ids}}) 
+0

Любая идея о том, как решить https://github.com/tgriesser/bookshelf/issues/592 – aWebDeveloper

+0

Боюсь, что нет, у меня нет никакого реального опыта работы с книжной полки – Jcl

+0

вау .... то как ты ответила на этот вопрос? – aWebDeveloper

5

попробовать запрос() функция на вашей модели.

CalendarEventRSVP.query(function(qb){ 
    qb.where('event_id' , 'in' , [1,2,3,4]) ; 
}) 
.fetchAll() 
.then();