我想编写一个应用程序来管理职业变化。因此,我创建了一个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} })
但这不起作用。我应该补充一点,每个就业都有一个客户字段,每个请求只应返回属于当前用户所属客户的雇员
答案 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}}}
})