猫鼬查询日期间隔

时间:2018-06-20 12:27:55

标签: node.js mongoose mongoose-schema

在我的猫鼬模式“摄影师”中,我有一个带有嵌套对象的属性,该属性描述摄影师何时不可用,如下所示:

const photographer = new Schema({
  _id : Schema.Types.ObjectId,
  ...
  busy: [{startDate : Date, endDate : Date}],
  ...
  })

我需要查询所有给定日期的文档,这些文档表示在给定时间内有空的摄影师。我不知道如何编写正确的查询。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

您可能要进行范围查询。切换$gt$lt取决于您的程序。例如:

var myDate = new Date(req.query.date); // 
Photographer.find({
    $and: [
        {'busy.startDate': {$lt: myDate}},
        {'busy.endDate': {$gt: myDate}}
    ]
}, (err, photographers) => {})

或者,简单的方法是先让所有摄影师使用,然后再进行条件检查摄影师在指定的日子是否忙碌。