{
_id: 'uniquewId',
programs: [
{
prgName: 'prgOne',
progress: '5',
addedBy: 'coach'
exercises: [
{
date: '1/12/20',
exercises: [
{
exId: 'pushup',
progress: 5,
attributes: [
{
id: 'myId',
done: true
},
{
id: 'myId2',
done: false
}
]
},
{
exId: 'situp',
progress: 5,
attributes: [
{
id: 'myId',
done: true
},
{
id: 'myId2',
done: true
}
]
}
]
},
{
date: '2/12/20',
exercises: [
{
exId: 'pushup',
progress: 5,
attributes: [
{
id: 'myId',
done: true
},
{
id: 'myId2',
done: false
}
]
},
{
exId: 'situp',
progress: 5,
attributes: [
{
id: 'myId',
done: fase
},
{
id: 'myId2',
done: false
}
]
}
]
}
]
},
{
prgName: 'prgTwo',
progress: '5',
addedBy: 'coach2'
exercises: [
{
date: '1/12/20',
exercises: [
{
exId: 'pushup',
progress: 5,
attributes: [
{
id: 'myId',
done: true
},
{
id: 'myId2',
done: true
}
]
},
{
exId: 'situp',
progress: 5,
attributes: [
{
id: 'myId',
done: false
},
{
id: 'myId2',
done: false
}
]
}
]
},
{
date: '2/12/20',
exercises: [
{
exId: 'pushup',
progress: 5,
attributes: [
{
id: 'myId',
done: true
},
{
id: 'myId2',
done: false
}
]
},
{
exId: 'situp',
progress: 5,
attributes: [
{
id: 'myId',
done: true
},
{
id: 'myId2',
done: false
}
]
}
]
}
]
}
]
}
That above is the structure of my document.
What i want to do is from the programs array i want to project the name of exercises that have atleat one document inside attribute array which has done key marked as true. What i am trying to do is figure out exercises which has done set to true inside the attributes array
Is there any way i can get the output like:
{
_id: 'uniquewId',
programs: [
{
prgName: 'prgOne',
exercises: [
'pushup',
'situp'
]
},
{
prgName: 'prgTwo',
exercises: [
'pushup',
'situp'
]
}
]
}
prgTwo?