typescript MongoDB返回结果,即使过滤器为false?

bzzcjhmw  于 2023-04-07  发布在  TypeScript
关注(0)|答案(1)|浏览(131)

我正在尝试根据以下过滤器获取数据:如果时间戳在特定日期的08:00:00和16:00:00之间,它应该返回结果。$gte比16:00:00过滤器工作正常,但不是$lte。
work.time.work_time.start_time的时间戳= 1680940800000
请求预订的时间戳.booking.estimated_start_time = 1680919200000
代码如下:(它应该失败,但不知何故它并没有失败)。

const bookingObject = await this.bookingRepository.findOne({
        user_id: body.worker_id,
        'work.date': requestBooking.booking.date,
        'work.time.work_time.start_time': {
          $lte: requestBooking.booking.estimated_start_time,
        },
        'work.time.work_time.end_time': {
          $gte: requestBooking.booking.estimated_start_time + 1800000, // +30 min after
        },
      });
9njqaruj

9njqaruj1#

您使用操作符的方式不正确,您希望时间戳在一个范围内,因此,start_time应该大于等于,end_time应该小于等于。尝试以下操作:

const bookingObject = await this.bookingRepository.findOne({
        user_id: body.worker_id,
        'work.date': requestBooking.booking.date,
        'work.time.work_time.start_time': {
          $gte: requestBooking.booking.estimated_start_time,
        },
        'work.time.work_time.end_time': {
          $lte: requestBooking.booking.estimated_start_time + 1800000, // +30 min after
        },
      });

相关问题