我在MongoDb上有一个层次结构,如下面的示例:
class Employee
{
Guid Id {get;set;}
Guid ParentId {get;set;}
Guid[] ChildrenId {get;set;}
Schedules[] Schedules {get;set;}
}
我需要编写一个函数来返回所有的调度,或者给定Id的所有调度的计数(不仅仅是直接子节点,而是所有层次结构,它没有最大值)层数)。
我能够使用递归函数来做到这一点,但这会产生大量的数据库查询并带来我不想要的大量数据,例如,我需要带来所有Employees,只计算他们的日程安排在一些规则上。
我想知道是否有更简单或更具性能的方法来进行此类数据分析。
我正在使用MongoDb和C#驱动程序2.1。
答案 0 :(得分:0)
您可以使用
选择要返回的字段cursor.SetFields(Fields.Include("Shedules", ...));
或者您可以使用MongoDB聚合API。这很困难,但你只需要仔细阅读文档