我有一个员工集合,其中包含员工数据和一些带有开始和结束时间的事件......我想查询数据以便根据事件的开始和结束获取特定员工事件的子集。
employees = [
{
_id: 5,
events: [
{
start:5,
end:10
},
{
start:15,
end:20
},
{
start:21,
end:26
},
]
},
{
_id: 6,
events: [
{
start:3,
end:10
},
{
start:15,
end:22
},
{
start:23,
end:26
},
]
}
]
期望的结果:对于 _id 为 z 的员工,开始大于 x 且结束小于 y 的事件列表。
现在我正在尝试:
db.employees.aggregate([
{ $match: {'_id': 5}},
{ $unwind: '$events'},
{ $match: {'events.start': 2}
]);
但我仍然无法使用 $gt/$lt 过滤子集。