首页 > 解决方案 > 为不同的字段续集多个 $or

问题描述

有没有办法使用 sequelize 创建下面的查询?我的主要问题是创建多个具有不同字段的OR语句

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 = trueinsideparent is null语句,但是我不能重复$or之前使用的语句,因为它会是一个无效的 json(两个同名的字段)

标签: sequelize.jssequelize-typescript

解决方案


尝试这样的事情:

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

推荐阅读