2012-02-23 116 views
2

比方說,我有一個模型,看起來像這樣:RavenDB:排序,索引和預測

public class Blog 
{ 
    public string BlogId { get; set; } 
    public string Name { get; set; } 
    public DateTime Created { get; set; } 
} 

public class Post 
{ 
    public string PostId { get; set; } 
    public string BlogId { get; set; } 
    public string Text { get; set; } 
} 

我有許多博客,每個帖子很多。現在,我希望有一個「博客摘要視圖」是這樣的:

public class BlogSummaryView 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
    public DateTime Created { get; set; } 
    public int PostCount { get; set; } 
} 

我應該如何去獲得這個名單,如果我希望能夠進行排序既對創建日期一些職位的?

我可以添加地圖/減少索引來獲取每個博客的帖子數量並對其進行排序,但我無法使用此索引對博客創建日期進行排序。

添加地圖索引使我可以按創建日期進行排序。儘管這個索引不允許我對帖子數量進行排序,除非我缺少某些東西。

回答

3

Kristoffer, 這就是爲什麼我們有多地圖減少指標。見: http://ayende.com/blog/89089/ravendb-multi-maps-reduce-indexes

+0

我試過,沒有運氣(我得到一個DateTime/int轉換錯誤,我找不出)。但至少我知道我在正確的軌道上。 – Kristoffer 2012-02-23 21:47:05

+0

您可能需要更新到最新的unstable版本。我們修正了類似的東西。 – 2012-02-24 17:48:32

+0

我從構建616(穩定)移到657(不穩定),這解決了我的multi-map-reduce索引的reduce部分中g.Max(x => x.Created)的轉換問題。謝謝! – Kristoffer 2012-02-24 18:30:23