【发布时间】:2020-03-18 21:14:58
【问题描述】:
我对 MongoDB 还很陌生,已经面临着艰巨的挑战。我正在尝试从带有对象的数组中的对象数组中获取一个元素(如果有意义的话)。这就是文档的外观以及我想要得到的内容:
所以基本上结构如下:
- 选项菜单
- 选项菜单主题
- 选项菜单项
- 选项菜单主题
使用 MongoDB Compass 工具中的聚合管道工具获取我匹配的 OptionMenuItem 以将其拉出
[{
$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();
如果有人知道我做错了什么或如何解决这个问题,我将不胜感激:)
【问题讨论】:
标签: c# mongodb mongodb-.net-driver