У меня есть коллекция с nested fields
, например:
student: {
name: banana,
meetings: [
{grade: AW, key1, group: A, time: ISODate("2018-09-25T14:08:00.729+0000")},
{grade: AW, key2, group: A, time: ISODate("2018-09-24T14:08:00.729+0000")},
{grade: BC, key2, group: B, time: ISODate("2018-09-25T14:08:00.729+0000")},
{grade: BC, key3, group: B, time: ISODate("2018-09-24T14:08:00.729+0000")},
{grade: BD, key4, group: D, time: ISODate("2018-09-25T14:08:00.729+0000")}
]
}
Хотел бы подобрать для каждого meeting
, подобрать name
, и его latest grade
информация, если group
в ['A', 'B', 'C'].Например, эту коллекцию, которую я хотел бы получить:
student: {
name: banana,
meetings: [
{grade: AW, key1, group: A, time: ISODate("2018-09-25T14:08:00.729+0000")},
{grade: BC, key2, group: B, time: ISODate("2018-09-25T14:08:00.729+0000")}
]
}
Кажется, что использование unwind и $group
является потенциальным решением.Однако коллекция очень huge
, что делает $group
даже невозможным.Кто-нибудь может дать мне несколько советов по этому поводу?Спасибо.