【发布时间】:2020-03-27 01:52:48
【问题描述】:
{
_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
}
]
}
]
}
]
}
以上是我的文档的外观。有没有办法我可以投影程序数组,使其具有具有addedBy = 'coach' 的文档,而练习数组中的练习数组应该只有exId = 'pushup'
我想要的输出是:
{
_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
}
]
}
]
}
]
}
程序数组可能有多个文档具有addedBy='coach',如果是这样,它应该都在那里:)
【问题讨论】:
标签: node.js mongodb aggregation-framework