Ravendb查询汇总属性/减少索引



我有一个看起来像这样的地图/降低索引(如服务器上定义)。

地图:

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)
    }

我正在尝试查询地图/减少索引的结果:

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

但是,当有很多结果(如工作室所示)的总属性大于1时,我没有得到任何结果我过滤了除汇总属性(请求Bytes,ResponseBytes和TotalRequests)以外的任何其他属性。

有人可以帮助我理解我做错了什么吗?

好的,我想出了。无论出于何种原因,我都需要像这样施放总和()的结果。这必须与发送到Raven Server的动态汇编有关。

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)
    }

最新更新