node.js - 如何从 Nodejs 中的不同模式获取数据
问题描述
我有两个模式,称为员工(父)和评估(子)每个评估都会有一个通过百分比的员工 ID
所以我有这样的结果
employees : [
{
"_id": 12345,
"name": "David",
"evaluated": false
},
{
"_id": 12346,
"name": "Miller",
"evaluated": false
}
]
第二个模式
assessments: [
{
"assessment_type": "basic",
"employee_id": 12345,
"qualified": true
},
{
"assessment_type": "advanced",
"employee_id": 12345,
"qualified": false
},
{
"assessment_type": "basic",
"employee_id": 12346,
"qualified": true
},
{
"assessment_type": "advanced",
"employee_id": 12346,
"qualified": true
}
]
所以我想让员工根据评估合格是真的
你能告诉我什么是最好的方法吗?
解决方案
这是一个示例,我们按员工成功的评估对员工进行排序。
const employees = [{
_id: 12345,
name: 'David',
evaluated: false,
}, {
_id: 12346,
name: 'Miller',
evaluated: false,
}];
const assessments = [{
assessment_type: 'basic',
employee_id: 12345,
qualified: true,
}, {
assessment_type: 'advanced',
employee_id: 12345,
qualified: false,
}, {
assessment_type: 'basic',
employee_id: 12346,
qualified: true,
}, {
assessment_type: 'advanced',
employee_id: 12346,
qualified: true,
}];
// Loop at the employees
const sortByAssessment = employees.reduce((tmp, x) => {
// Get all the assessment about the employee
const employeeAssessment = assessments.filter(y => y.employee_id === x._id);
// Deal with each assessment
employeeAssessment.forEach((y) => {
// Only do something about successfull assessments
if (y.qualified) {
// In case this is the first time we are dealing with the assessment_type
// create an array where we are going to insert employees informations
tmp[y.assessment_type] = tmp[y.assessment_type] || [];
// Push the name of the employee inside of the assessment type array
tmp[y.assessment_type].push(x.name);
}
});
return tmp;
}, {});
console.log(sortByAssessment);
推荐阅读
- php - Wordpress 发布迁移到谷歌云问题
- python - 将文件输入到多个矩阵
- angular - 可滚动内容 - 角度日历
- node.js - 在生产服务器上使用 find() 时,Node/Mongoose 只返回一个文档
- css - 如何在 JavaFX CSS 中添加过渡到悬停效果?
- job-scheduling - CircleCI config.yml 中的错误
- django-forms - 在同一页面上添加和编辑评论
- python - 有没有办法在多个值上运行 np.where 而不仅仅是一个?
- algorithm - 我无法解决的算法,但为什么呢?
- tableau-api - 我正在尝试过滤表计算。尝试过滤表格计算时,总计不会改变。它的静态