查询mongoose子文档

时间:2015-02-25 13:40:03

标签: node.js mongodb mongoose

我想编写一个应用程序来管理职业变化。因此,我创建了一个Schema for Employments,其中包含一个字段shifts: [Shift],其中Shift是包含startDate: Date字段的Schema。

现在,我想查询数据库以返回具有条件的移位的雇员:startTimestamp <= startDate <= endTimestamp以在日历中显示结果。

不幸的是,我无法弄清楚如何进行查询,我无法找到对mongoose查询的更深层次的解释。如果有人可以帮助我,那会很好。

提前致谢!

编辑:

我尝试了以下

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

但这不起作用。我应该补充一点,每个就业都有一个客户字段,每个请求只应返回属于当前用户所属客户的雇员

2 个答案:

答案 0 :(得分:0)

你就是这样做的;

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

答案 1 :(得分:0)

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

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