Mongodb - 检索数组中的日期与给定日期不重叠的条目

时间:2018-04-02 10:30:24

标签: arrays node.js mongodb mongodb-query

我有一个MongoDB文档用户,其中包含一个如下所示的数组:

date1 = 2018-04-17T12:00:00.000Z
date2 = 2018-04-17T15:00:00.000Z

我想检索,给定两个日期:

User.find({role: 'coach', $nor: [ {$and: [{"meeting.start": {$gte: date1}},{"meeting.start": {$lt: date2}}]},{$and: [{"meeting.end": {$gt: date1}},{"meeting.end": {$lte: date2}}]}],
        $or: [ {training: []},{"meeting.start": {$gte: date1}}, {"meeting.end": {$lte: date2}}]}, function(err, coaches){ [...]

每个至少在日期上没有与另外两个重叠的用户(date1和date2之间的每个可用用户)。这意味着:

  1. 开始不能在[date1; DATE2 [
  2. 结束不能在] date1; DATE2]
  3. 我们无法开始< date1&&结束> DATE2
  4. 我尝试了很多东西,并查找了许多主题,但没有设法使这项工作正常......以下是我的尝试:

    driver.back()

    除非用户的会议次数从10到11,另一次会议从15到16,我尝试找到12到13之间的可用用户,否则将无法检索此用户。

    我出错了什么?

0 个答案:

没有答案