diff --git a/src/routes/sample.ts b/src/routes/sample.ts index adb645a..270389b 100644 --- a/src/routes/sample.ts +++ b/src/routes/sample.ts @@ -230,8 +230,11 @@ router.get('/samples', async (req, res, next) => { {$eq: ['$sample_id', '$$sId']}, {$in: ['$measurement_template', measurementTemplates.map(e => mongoose.Types.ObjectId(e._id))]} ]}}}, - {$project: filters.fields.filter(e => /measurements\./.test(e)) - .map(e => 'values.' + e.replace('measurements.', '')).reduce((s, e) => {s[e] = true; return s; }, {})} + {$project: _.merge( + filters.fields.filter(e => /measurements\./.test(e)) + .map(e => 'values.' + e.split('.')[2]).reduce((s, e) => {s[e] = true; return s; }, {}), + {measurement_template: true, status: true, sample_id: true} + )} ], as: 'measurements' }}); @@ -328,8 +331,11 @@ router.get('/samples', async (req, res, next) => { {$eq: ['$sample_id', '$$sId']}, {$in: ['$measurement_template', measurementTemplates.map(e => mongoose.Types.ObjectId(e._id))]} ]}}}, - {$project: filters.fields.filter(e => /measurements\./.test(e)) - .map(e => 'values.' + e.replace('measurements.', '')).reduce((s, e) => {s[e] = true; return s; }, {})} + {$project: _.merge( + filters.fields.filter(e => /measurements\./.test(e)) + .map(e => 'values.' + e.split('.')[2]).reduce((s, e) => {s[e] = true; return s; }, {}), + {measurement_template: true, status: true, sample_id: true} + )} ], as: 'measurements' }});