使用 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"的区域元素中提取所有区域

用谷歌搜索,但没有找到任何可以帮助我的东西。

你能帮帮我吗?

使用 C# 从 MondoDB 文档中提取子文档数组

您可以使用以下代码:

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);