Mongodb 在mongo中插入另一个集合之前,如何检查一个集合中是否有可用的内容?

Mongodb 在mongo中插入另一个集合之前,如何检查一个集合中是否有可用的内容?,mongodb,Mongodb,对不起,我是mongodb的初学者 我制作了一个名为professors的集合,看起来像这样: ` 。。。所有的工作日都是如此。它描述了教授的可用时间 在插入另一个名为tutoring的集合之前,如果学生希望插入教程的时间与特定教授的可用时间相匹配,我如何进行检查。有很多方法可以做到这一点。其中之一是,试着按时间范围找到你的教授。如果结果不是空的,则执行您的操作(插入到另一个集合中) 假设你想知道你的教授是否在8:35到9:35之间有空 db.getCollection('professor')

对不起,我是mongodb的初学者

我制作了一个名为professors的集合,看起来像这样: `

。。。所有的工作日都是如此。它描述了教授的可用时间


在插入另一个名为tutoring的集合之前,如果学生希望插入教程的时间与特定教授的可用时间相匹配,我如何进行检查。

有很多方法可以做到这一点。其中之一是,试着按时间范围找到你的教授。如果结果不是空的,则执行您的操作(插入到另一个集合中)

假设你想知道你的教授是否在8:35到9:35之间有空

db.getCollection('professor').find({
  patron_id: "MR.P",   //Your professor
  $and: [{
    $or: [{
      start_hour: {
        $lt: "8"
      }
    }, {
      start_hour: "8",
      start_minute: {
        $lte: "35"
      }
    }]
  }, {
    $or: [{
      end_hour: {
        $gt: "9"
      }
    }, {
      end_hour: "9",
      end_minute: {
        $gte: "35"
      }
    }]
  }]
});
以上这一点并不是一个完美的答案。这里有很多问题。不要将分钟和小时分开存储。尤其不是作为字符串。如果这些是时间戳,那么做起来就容易多了

db.getCollection('professor').find({
  patron_id: "MR.P",   //Your professor
  $and: [{
    $or: [{
      start_hour: {
        $lt: "8"
      }
    }, {
      start_hour: "8",
      start_minute: {
        $lte: "35"
      }
    }]
  }, {
    $or: [{
      end_hour: {
        $gt: "9"
      }
    }, {
      end_hour: "9",
      end_minute: {
        $gte: "35"
      }
    }]
  }]
});