{
_id: 'uniquewId',
programs: [
{
progress: '5',
addedBy: 'coach'
exercises: [
{
date: '1/12/20',
exercises: [
{
exId: 'pushup',
progress: 5
},
{
exId: 'situp',
progress: 5
},
{
exId: 'pushup',
progress: 0
}
]
},
{
date: '2/12/20',
exercises: [
{
exId: 'pushup',
progress: 5
},
{
exId: 'situp',
progress: 5
},
{
exId: 'pushup',
progress: 0
}
]
}
]
},
{
progress: '5',
addedBy: 'coach2'
exercises: [
{
date: '1/12/20',
exercises: [
{
exId: 'pushup',
progress: 5
},
{
exId: 'situp',
progress: 5
},
{
exId: 'pushup',
progress: 0
}
]
},
{
date: '2/12/20',
exercises: [
{
exId: 'pushup',
progress: 5
},
{
exId: 'situp',
progress: 5
},
{
exId: 'pushup',
progress: 0
}
]
}
]
}
]
}
That above is how my document looks . Is there a way i can project the programs array so it has the documents which have addedBy = 'coach' and the exercises array inside exercises array should only have exId = 'pushup'
the output i want is:
{
_id: 'uniquewId',
programs: [
{
progress: '5',
addedBy: 'coach'
exercises: [
{
date: '1/12/20',
exercises: [
{
exId: 'pushup',
progress: 5
},
{
exId: 'pushup',
progress: 0
}
]
},
{
date: '2/12/20',
exercises: [
{
exId: 'pushup',
progress: 5
},
{
exId: 'pushup',
progress: 0
}
]
}
]
}
]
}
the program array may have more than one document which have addedBy='coach' if so it should all be there :)