2012-02-23 75 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