使用 C# 从 MondoDB 文档中提取子文档数组
本文关键字:文档 提取 数组 使用 MondoDB | 更新日期: 2023-09-27 18:31:05
我有一个这样的MongoDB文档-
{
"_id" : ObjectId("546d96b861cbf86e90544bc4"),
"Hierarchy" : {
"Region" : [
{
"Name" : "Dhaka",
"Area" : [
{
"Name" : "Dhaka North"
},
{
"Name" : "Dhaka South"
}
]
},
{
"Name" : "Khulna",
"Area" : []
}
]
}
}
使用MongoDB C#驱动程序,我想从Region.Name="Dhaka"
的区域元素中提取所有区域。
用谷歌搜索,但没有找到任何可以帮助我的东西。
你能帮帮我吗?
您可以使用以下代码:
var fields = Fields.Exclude("_id").Include("Hierarchy.Region.Area");
var queryString = Query.EQ("Hierarchy.Region.Name", "Dhaka");
var result = collection.Find(queryString).SetFields(fields).SetFields().ToList();
你不需要 mongo 驱动程序来获取对象。要从中提取数据,您只需使用 linq to 对象即可。
var obj = GetObjectFromMongo(...);
var areas = obj.Hierarchy.Region.Where(r => r.Name == "Dhaka").Select(r => r.Area);