查询猫鼬子文档
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}}}
})
我想编写一个应用程序来管理工作中的轮班。因此,我为就业创建了一个架构,它有一个字段 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}}}
})