Sequelize несколько $ или для разных полей - PullRequest
0 голосов
/ 18 апреля 2020

Есть ли способ создать запрос ниже, используя sequelize? Основная проблема для меня - создать несколько ИЛИ операторов с разными полями

WHERE "event"."active" = true

  AND ("event"."startDate" BETWEEN '2020-04-16' AND '2020-05-15' OR "event"."recurrenceEndDate" BETWEEN '2020-04-16' AND '2020-05-15')

  AND ("event"."parent" IS NULL OR "event"."independent" = true)

Это то, что я пробовал

where = {
    active: True,
    $or: [ 
          { startDate: { $between: [event.startDate, event.recurrenceEndDate] } },
          { recurrenceEndDate: { $between: [event.startDate, event.recurrenceEndDate] } }
         ]
    parent: { $is: null }

}

Теперь мне нужно добавить OR independent = true внутри parent is null оператора, но я не могу повторить оператор $or, использовавшийся ранее, потому что это будет недействительным json (два поля с одинаковым именем)

1 Ответ

1 голос
/ 18 апреля 2020

Попробуйте что-то вроде этого:

where = {
  $and: [
    { active: True },
    { $or: [ 
          { startDate: { $between: [event.startDate, event.recurrenceEndDate] } },
          { recurrenceEndDate: { $between: [event.startDate, event.recurrenceEndDate]             } }
         ] },
   { $or: [ { parent: { $is: null } }, { independent: true }]
]
}
...