I have mongo query which does the group operation on the documents.
I have almost got the expected results except that I want to refine the results without empty or
this example includes two different Collections. For this we use aggregate function. I am also using Mongoose
$project to rename the Fields to show properly on the client
. async getAllMasterDataCustomFields(req) {
let response = {};
try {
response = await customfieldsModel.aggregate([
{
$lookup: {
from: 'customfieldlabels',
localField: 'cfId',
foreignField: 'cfId',
as: 'info'
}
},
{ '$unwind': { 'path': '$info', 'preserveNullAndEmptyArrays': true } },
{ '$match': { 'childs.name': { $not: /INACTIVE/ }}},
{
$project: {
'cfId': 1,
'label': '$info.label',
'type': '$info.type',
'childs': 1
}
}]).exec();
} catch (e) {
logger.log('error', `Error while getting response ${e.meesage}`);
}
return response;
}
.