查询猫鼬子文档

Query mongoose subdocuments

我想编写一个应用程序来管理工作中的轮班。因此,我为就业创建了一个架构,它有一个字段 shifts: [Shift],其中 Shift 是包含一个 startDate: Date 字段的架构。

现在我想在数据库中查询 return 有轮班且条件为:startTimestamp <= startDate <= endTimestamp 的就业,以在日历中显示结果。

不幸的是,我不知道如何进行查询,也找不到对 mongoose 查询的更深入的解释。如果有人可以帮助我,那就太好了。

提前致谢!

编辑:

我尝试了以下方法

  .find(
    {customer: req.user.customer,
    'shifts.startDate': {$gte: req.params.startDate, $lte: req.params.endDate} })

但这不起作用。我要补充一点,每个 Employment 都有一个客户字段,每个请求应该只 return 属于当前用户所属客户的 Employments

这就是你的做法;

db.employments.find({shifts.startDate: {$gte: startTimestamp, $lt: endTimestamp}});

在范围内匹配数组字段元素时,使用$elemMatch确保匹配的两个条件都被相同元素满足。

MyModel.find({
    customer: req.user.customer,
    shifts: {$elemMatch: {startDate: {$gte: req.params.startDate, 
                                      $lte: req.params.endDate}}}
})