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

时间:2014-11-20 11:20:54

标签: c# mongodb

我有一个像这样的MongoDB文档 -

{
"_id" : ObjectId("546d96b861cbf86e90544bc4"),
"Hierarchy" : {
                "Region" : [ 
                                {
                                    "Name" : "Dhaka",
                                    "Area" : [ 
                                                {
                                                    "Name" : "Dhaka North"
                                                }, 
                                                {
                                                    "Name" : "Dhaka South"
                                                }
                                            ]
                                }, 
                                {
                                    "Name" : "Khulna",
                                    "Area" : []
                                }
                            ]
                }
}

使用MongoDB C#驱动程序,我想从 Region 元素中提取所有 Area ,其中Region.Name="Dhaka"

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

你能帮帮我吗?

2 个答案:

答案 0 :(得分:0)

除了获取对象之外,你不需要mongo驱动程序。要从中提取数据,您只需将linq用于对象即可。

var obj = GetObjectFromMongo(...);
var areas = obj.Hierarchy.Region.Where(r => r.Name == "Dhaka").Select(r => r.Area);

答案 1 :(得分:0)

您可以使用此代码:

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