查询MongoDb上的分层数据

时间:2015-12-02 15:22:00

标签: c# .net mongodb mongodb-.net-driver nosql

我在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。

1 个答案:

答案 0 :(得分:0)

您可以使用

选择要返回的字段
cursor.SetFields(Fields.Include("Shedules", ...));

或者您可以使用MongoDB聚合API。这很困难,但你只需要仔细阅读文档