面试题答案
一键面试db.collection('employees').find({
"projects.tasks.completed": true
}, {
"employee_name": 1,
"projects": {
$elemMatch: {
"tasks": {
$elemMatch: {
"completed": true
}
}
}
},
_id: 0
}).match({
"projects.tasks.completed": {
$gte: 2
}
});
上述代码中,假设集合名称为employees
。
- 首先使用
find
方法,筛选出至少有一个已完成任务的员工记录。这里使用$elemMatch
对projects
数组中的元素进行匹配,要求tasks
数组中至少有一个任务的completed
为true
。 - 然后使用
match
方法,进一步筛选出在至少一个项目中有两个及以上已完成任务的员工。通过$gte
操作符判断已完成任务的数量是否大于等于2 。
在实际应用中,请将collection('employees')
中的employees
替换为实际的集合名称。