带有POCO类的mongodb graphLookup c#示例
是否有机会将graphLookup聚合阶段用于POCO类而不是bson文档? 我发现的所有例子都使用了BsonDocuments,这让我非常困惑。带有POCO类的mongodb graphLookup c#示例,c#,mongodb,graphlookup,C#,Mongodb,Graphlookup,是否有机会将graphLookup聚合阶段用于POCO类而不是bson文档? 我发现的所有例子都使用了BsonDocuments,这让我非常困惑。 谢谢。让我们举一个示例场景,希望获取库中给定类别的面包屑结果 下面是一个完整的程序,它插入一些种子数据,并使用graphlookup聚合阶段获取正念类别的面包屑: 注意:为了简洁起见,我使用了MongoDB.Entitieslibrary。聚合查询与官方驱动程序相同 使用MongoDB.Driver; 使用MongoDB.Entities; 使用制度
谢谢。让我们举一个示例场景,希望获取库中给定类别的面包屑结果 下面是一个完整的程序,它插入一些种子数据,并使用graphlookup聚合阶段获取
正念
类别的面包屑:
注意:为了简洁起见,我使用了MongoDB.Entities
library。聚合查询与官方驱动程序相同
使用MongoDB.Driver;
使用MongoDB.Entities;
使用制度;
使用System.Collections.Generic;
使用System.Threading.Tasks;
命名空间测试应用程序
{
公共类类别:实体
{
公共字符串名称{get;set;}
公共字符串ParentCategory{get;set;}
}
公开课成绩
{
公共字符串[]面包屑{get;set;}
}
公共静态类程序
{
专用静态异步任务Main()
{
等待DB.InitAsync(“测试”);
等待新的[]{
新类别{Name=“Books”},
新类别{Name=“Sci Fi”,ParentCategory=“Books”},
新类别{Name=“Space”,ParentCategory=“Sci-Fi”},
新类别{Name=“AI”,ParentCategory=“Sci-Fi”},
新类别{Name=“自助”,ParentCategory=“图书”},
新类别{Name=“正念”,ParentCategory=“自助”},
新类别{Name=“催眠疗法”,ParentCategory=“自助”}
}.SaveAsync();
var collection=DB.collection();
var result=await collection.Aggregate()
.Match(c=>c.Name==“正念”)
GraphLookup先生(
来源:收藏,
connectFromField:nameof(Category.ParentCategory),
connectToField:nameof(Category.Name),
startWith:$“${nameof(Category.Name)}”,
@如:“面包屑”,
深度字段:“订单”)
.放松(“面包屑”)
.SortByDescending(x=>x[“面包屑.订单”])
.Group(“{u id:null,BreadCrumb:{$push:'$BreadCrumb'}}”)
.Project(“{u id:0,BreadCrumb:'$BreadCrumb.Name'}”)
.As()
.ToListAsync();
var output=string.Join(“>”,结果[0].BreadCrumb);
Console.WriteLine(输出);//书籍>自助>正念
Console.ReadLine();
}
}
}