【问题标题】:RavenDB Query Aggregate Properties in Map/Reduce IndexRavenDB 查询 Map/Reduce 索引中的聚合属性
【发布时间】:2014-04-09 20:45:51
【问题描述】:

我有一个看起来像这样的 map/reduce 索引(在服务器上定义)。

地图:

from request in docs.Master_Requests
    select new
    {
        DocumentID = Guid.NewGuid(),
        Year = request.Timestamp.Year,
        Month = request.Timestamp.Month,
        Day = request.Timestamp.Day,
        Hour = request.Timestamp.Hour,
        Minute = request.Timestamp.Minute,
        RequestBytes = request.RequestBytes,
        ResponseBytes = request.ResponseBytes,
        TotalRequests = 1
    }

减少:

from result in results
group result by new { result.Year, result.Month, result.Day, result.Hour, result.Minute }
    into g
    select new
    {
       DocumentID = Guid.NewGuid(),
       Year = g.Key.Year,
       Month = g.Key.Month,
       Day = g.Key.Day,
       Hour = g.Key.Hour,
       Minute = g.Key.Minute,
       RequestBytes = g.Sum(r => r.RequestBytes),
       ResponseBytes = g.Sum(r => r.ResponseBytes),
       TotalRequests = g.Sum(r => r.TotalRequests)
    }

我正在尝试像这样查询 map/reduce 索引的结果:

session.Query<UsageAggregate>("RequestAggregateByMinute", true)
                                .Where(a => a.TotalRequests >= 1);

但是,当有许多 TotalRequests 属性大于 1 的结果(如工作室中所示)时,我没有得到任何结果。当我不包含 where 谓词时我得到结果,我也得到结果我过滤聚合属性(RequestBytes、ResponseBytes 和 TotalRequests)以外的任何其他属性。

谁能帮我理解我做错了什么?

【问题讨论】:

  • 更多信息。看来我只是无法对聚合字段进行范围查询(例如,大于不起作用,等于起作用)。

标签: c# .net nosql ravendb document-database


【解决方案1】:

好的,我想通了。无论出于何种原因,我都需要像这样转换 Sum() 的结果。这必须与发送到 raven 服务器后的动态编译有关。

from result in results
group result by new { result.Year, result.Month, result.Day, result.Hour, result.Minute }
    into g
    select new
    {
       DocumentID = Guid.NewGuid(),
       Year = g.Key.Year,
       Month = g.Key.Month,
       Day = g.Key.Day,
       Hour = g.Key.Hour,
       Minute = g.Key.Minute,
       RequestBytes = (Int32)g.Sum(r => r.RequestBytes),
       ResponseBytes = (Int32)g.Sum(r => r.ResponseBytes),
       TotalRequests = (Int32)g.Sum(r => r.TotalRequests)
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多