一、普通版
1、将传参 id 作为查询条件,查询 JcqlcProject 表中的危害因素名称 harmFactorsName 及其类型 category 和所用仪器 instrument 并按照 [ '化学', '粉尘', '物理', '其他' ] 的顺序进行正序排序。
const project = await ctx.model.JcqlcProject.aggregate([
{ $match: { _id: id } }, // 查询JcqlcProject表(*注意首字母要大写!!!)中包含id元素的_id字段
{ $unwind: '$station' }, // 拆分station数组
{ $unwind: '$station.harmFactors' }, // 拆分harmFactors数组
{ $unwind: '$station.harmFactors.sample' }, // 拆分sample数组
// { $project: { chineseName: 1, catetory: 1, standerd: 1, respirableDust_standard: 1, 'standardInfo.num': 1, 'respirableDust_standardInfo.num': 1 } },
{ $project: { instrument: '$station.harmFactors.sample.instrument', harmFactorsName: '$station.harmFactors.harmFactorsName', category: '$station.harmFactors.category' } }, // 获取所需要的字段
{ $group: {
_id: '$catetory', // 按照catetory字段进行分组
data: { $push: '$$ROOT' },
} },
{
$addFields: { // 添加新字段typeSort
typeSort: {
$indexOfArray: [[ '化学', '粉尘', '物理', '其他' ], '$_id'], // 根据危害因素的类型进行分组排序
},
},
},
{ $sort: {
typeSort: 1, // 根据正序排序
}
},
]);
console.log(project);
输出结果如下:
[
{
_id: '化学',
data: [
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object], [Object],
[Object]
],
typeSort: 0
},
{
_id: '粉尘',
data: [
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object]
],
typeSort: 1
},
{
_id: '物理',
data: [
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object], [Object], [Object], [Object],
[Object]
],
typeSort: 2
}
]
2、创建一个新数组 projectData,放入 project 中 data 数组的所有元素。
const projectData = project.map(item => item.data);
console.log(projectData);
输出结果如下:
projectData 为二维数组
[
[
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '正己烷、戊烷',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '正己烷、戊烷',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '正己烷、戊烷',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正己烷、戊烷',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正己烷、戊烷',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正己烷、戊烷',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正己烷、戊烷',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正己烷、戊烷',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正己烷、戊烷',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '苯、甲苯、二甲苯、乙酸乙酯、乙酸丁酯、丙酮、环己酮',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '正丁醇',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '锰及其无机化合物',
category: '化学'
}
],
[
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '砂轮磨尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '砂轮磨尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [],
harmFactorsName: '砂轮磨尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '砂轮磨尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '砂轮磨尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '砂轮磨尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '其他粉尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '砂轮磨尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '砂轮磨尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '砂轮磨尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊烟尘',
category: '粉尘'
}
],
[
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊弧光',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊弧光',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊弧光',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊弧光',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊弧光',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊弧光',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊弧光',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '手传振动',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '手传振动',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '电焊弧光',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
},
{
_id: 'Ws7el1SH3z',
instrument: [Array],
harmFactorsName: '噪声',
category: '物理'
}
]
]
二、进阶版
1、点击按钮时调用方法,将危害因素的 id 和岗位的 id 作为查询条件,查询 JcqlcProject 表中的危害因素名称 harmFactorsName 及其类型 category 并按照 [ '化学', '粉尘', '物理', '其他' ] 的顺序进行正序排序,并将新增的危害因素添加至该数组中。
const stationHarmFactors = await ctx.model.JcqlcProject.aggregate([
{ $unwind: '$station' },
// { $match: { _id: allHarmFactors.oneId } },
{ $match: {
$and: [{ _id: allHarmFactors.oneId }, { 'station.stationId': allHarmFactors.stationId }],
} },
{ $unwind: '$station' },
{
$addFields: {
'station.harmFactors': {
$concatArrays: [ '$station.harmFactors', [ allHarmFactors ]],
},
},
},
{ $unwind: '$station.harmFactors' },
{ $addFields: {
'station.harmFactors.harmFactorsName': { $arrayElemAt: [ '$station.harmFactors.harmFactorsNameArray', 0 ] },
} },
{ $project: { harmFactorsName: '$station.harmFactors.harmFactorsName.name', category: '$station.harmFactors.category' } },
{ $group: {
_id: '$category',
data: { $push: '$$ROOT' },
} },
{
$addFields: {
typeSort: {
$indexOfArray: [[ '化学', '粉尘', '物理', '其他' ], '$_id' ],
},
},
},
{ $sort: {
typeSort: 1,
} },
]);