具有Max()聚合的RavenDB静态索引字段

时间:2014-04-11 17:19:22

标签: ravendb

我的文件有"评论"收集,我想索引"最后评论日期"。我已经静态定义了已经适用于其他字段的索引,因此我的索引没有任何问题。但是尝试添加这个新字段是行不通的。在搜索时我根本无法获得任何结果。

我尝试使用Max()聚合获取最大日期(请注意,我必须处理没有评论的情况)

testlastcommented = doc.Comments.Count > 0 ? doc.Comments.Select(c => c.DateEntered).Max() : null

这抱怨DynamicList不支持Max()。我可以发誓我使用Max()进行了迭代,但是现在我无法正常工作。但即使它没有发生错误,我也无法在现场查询。

然后我尝试使用OrderByDescending / FirstOrDefault替代Max()

testlastcommented = doc.Comments.OrderByDescending(c => c.DateEntered).FirstOrDefault()

此索引没有错误。但无论我做什么,它都好像该字段在索引中不存在。我无法获得具有已知值的任何结果。

我发生了故障并添加了一个计算出来的" LastCommented"属性到文档并索引。这显然有效,但我不必在文档中存储计算字段。

1 个答案:

答案 0 :(得分:2)

试试这个:

testlastcommented = doc.Comments.Select(c => c.DateEntered)
                                .OrderByDescending(x => x)
                                .FirstOrDefault()