【发布时间】: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