Я довольно новичок в MongoDB и уже сталкиваюсь с потным вызовом. Я пытаюсь получить элемент из массива с объектами внутри массива с объектами (если это имеет смысл). Вот как выглядит документ и что я пытаюсь получить:
Итак, в основном структура выглядит следующим образом:
Чтобы получить OptionMenuItem, который я выбрал для его снятия, используя инструмент агрегации конвейера из инструмента MongoDB Compass
[{
$unwind: {
path: '$subjects'
}
}, {
$unwind: {
path: '$subjects.items'
}
}, {
$project: {
_id: '$subjects.items._id',
item: '$subjects.items'
}
}, {
$match: {
_id: ObjectId('5e6eaef8ae35a418f4f6dbd4')
}
}]
Затем я попытался преобразовать это в C# безуспешно, насколько я понял:
var optionMenuItem = await collection.Aggregate()
.Unwind<OptionMenu, OptionMenuSubject>(i => i.Subjects)
.Unwind<OptionMenuSubject, OptionMenuItem>(i => i.Items)
.Match(i => i.Id == id)
.ToListAsync();
Если кто-нибудь знает, что я делаю неправильно или как я могу это осуществить, было бы очень признательно:)