2015-12-02 83 views
0

分層數據我有一個像波紋管的例子在MongoDB的層次結構:查詢有關MongoDB

class Employee 
{ 
    Guid Id {get;set;} 
    Guid ParentId {get;set;} 
    Guid[] ChildrenId {get;set;} 
    Schedules[] Schedules {get;set;} 
} 

,我需要寫一個返回所有的日程安排的功能,或者他們的所有是計數下面給出了一個Id(不僅僅是直接的孩子,而是所有的層次結構,它沒有最大層數)。

我可以使用遞歸函數做到這一點,但是這會產生很多查詢到數據庫並帶來很多我不想要的數據,例如我需要讓所有員工只計算他們的計劃根據一些規則。

我想知道是否有更簡單或更具性能的方式來做這種數據分析。

我使用MongoDb與C#驅動程序2.1。

回答

0

您可以選擇字段使用

cursor.SetFields(Fields.Include("Shedules", ...)); 

返回或者你可以使用MongoDB的聚集API。這是相當困難的,但你只需要仔細閱讀文檔

+0

謝謝,但只是設置領域將不會迴避和轉發到數據庫很多次。 – bateloche

+0

所以你需要使用 [aggregation api](http://mikaelkoskinen.net/post/mongodb-aggregation-framework-examples-in-c)。 – FanAs

+0

但是如何?我無法看到AggregationApi如何循環層次結構 – bateloche