C# 带有嵌套集合的mongo连接

C# 带有嵌套集合的mongo连接,c#,mongodb,join,C#,Mongodb,Join,我必须使用linq加入集合Location和LocationInfo并获得以下异常 System.NotSupportedException:“$project或$group不支持{document}”。 并尝试了以下C#代码 位置信息 { "_id" : "35cfd485-b1eb-4724-a07d-9b0885b6fb6c", "LocationName" : "AA Country", "IsActive" : true, "ServiceLocation" : [ {

我必须使用linq加入集合Location和LocationInfo并获得以下异常

System.NotSupportedException:“$project或$group不支持{document}”。

并尝试了以下C#代码

位置信息

{
"_id" : "35cfd485-b1eb-4724-a07d-9b0885b6fb6c",
"LocationName" : "AA Country",
"IsActive" : true,
"ServiceLocation" : [ 
    {
        "LocationId" : "c1828bf1-1ea0-4c48-932f-9d8ba4a19003",
        "Addresses" : [ 
            {
                "AddressId" : "9235bb19-cdbf-46a8-af96-cd519d081380",
                "Line1" : "xx",
                "Line2" : null,
                "City" : "xx",
                "State" : "OH",
                "IsActive" : true
            }
        ]
    }
]}

告诉我如何使用c#Linq实现此操作。

您可以在嵌套属性中执行查找/联接,如下所示。下面的代码使用MongoDB.Entities以简洁起见,但查询与官方驱动程序的
collection.AsQueryable()
接口完全相同

使用MongoDB.Entities;
使用MongoDB.Driver.Linq;
使用System.Linq;
命名空间堆栈溢出
{
公共类位置:实体
{
公共字符串位置编号{get;set;}
}
公共类位置信息:实体
{
公共字符串位置名称{get;set;}
公共ServiceLocation[]ServiceLocation{get;set;}
}
公共类服务位置
{
公共字符串LocationId{get;set;}
公共地址[]地址{get;set;}
}
公共课堂演讲
{
公共字符串地址ID{get;set;}
}
公共课程
{
私有静态void Main(字符串[]args)
{
新DB(“位置”);
var res=
DB.Queryable()
.SelectMany(li=>li.ServiceLocation,//展开服务位置
(li,sl)=>new{locName=li.LocationName,serLoc=sl})//将所需数据导入到匿名类型
.Join(DB.Queryable(),//foregin集合
x=>x.serLoc.LocationId,//上面展开的匿名类型中的本地字段
l=>l.ID,//外部字段
(x,l)=>new{LocationName=x.locName,ServiceLocation=x.serLoc})//导入到最终匿名类型
.ToList();
}
}
}

投赞成票!你应得的,先生,请你检查一下我的问题。
{
"_id" : "c1828bf1-1ea0-4c48-932f-9d8ba4a19003",
"LocationNumber" : 12345
}
{
"_id" : "35cfd485-b1eb-4724-a07d-9b0885b6fb6c",
"LocationName" : "AA Country",
"IsActive" : true,
"ServiceLocation" : [ 
    {
        "LocationId" : "c1828bf1-1ea0-4c48-932f-9d8ba4a19003",
        "Addresses" : [ 
            {
                "AddressId" : "9235bb19-cdbf-46a8-af96-cd519d081380",
                "Line1" : "xx",
                "Line2" : null,
                "City" : "xx",
                "State" : "OH",
                "IsActive" : true
            }
        ]
    }
]}