环回过滤器不在日期之间

时间:2018-07-09 19:00:08

标签: mysql node.js orm loopbackjs

我正在使用环回模型过滤具有开始日期和结束日期的事件列表,并且我想返回不在两个特定日期之间的事件列表。我认为这样应该可以工作:

const eventList = await Events.find({ 
  where: {
    startDate: {
      not: {
        between: [unavailableStarting, unavailableEnding],
      },
    },
    endDate: {
      not: {
        between: [unavailableStarting, unavailableEnding],
      },
    },
  },
});

如果您取出not部分,这对于获取日期之间的所有事件都可以正常工作。如何使NOT BETWEEN过滤器起作用?

1 个答案:

答案 0 :(得分:1)

据我所知,无法在环回模型中使用NOT BETWEEN,但我确实将其与lt gt一起使用:

const eventList = await Events.find({
  where: {
    and:[{
      or: [
        { startDate: { lt: unavailableStarting } },
        { startDate: { gt: unavailableEnding } },
      ]
    },
    {
      or: [
        { endDate: { gt: unavailableStarting } },
        { endDate: { lt: unavailableEnding } },
      ]
    }
  ]},
});