我的地图:
docs.Visits.Select(obj => new {
Year = obj.MetaData.CreatedDate.Year,
Month = obj.MetaData.CreatedDate.Month,
Day = obj.MetaData.CreatedDate.Day,
MediaSource = ((System.String)(obj.MediaSource)),
Version = ((System.String)(obj.Version)),
Count = 1
})
我的减少:
results.GroupBy(result => new {
Year = result.Year,
Month = result.Month,
Day = result.Day,
MediaSource = result.MediaSource,
Version = result.Version
}).Select(agg => new {
Year = agg.Key.Year,
Month = agg.Key.Month,
Day = agg.Key.Day,
MediaSource = agg.Key.MediaSource,
Version = agg.Key.Version,
Count = Enumerable.Sum(agg, x => ((System.Int32)(x.Count)))
})
示例查询:
Year: 2012 AND Month: 8 AND Day: 22
然而,我得到了重复的项目,有时甚至计数是相同的,有时候它们只有计数不同。 Visit集合中的数据集大约有200,000个文档,所以没什么。我重新添加了索引,重新设置了它,但仍然是相同的奇怪行为。
我的意思是我实际上得到了多张相同的地图缩小版,如下所示:
{
"Year": "2012",
"Month": "8",
"Day": "22",
"MediaSource": null,
"Version": null,
"Count": "7701"
}
当我将它们分组时,这怎么可能呢?年,月,日,MediaSource和版本?如果没有“分组”,那么群组有什么意义呢?在某些日期,当天所有计数的总和实际上高于数据库中访问文档的总量。
我做错了什么?
Database Server Build 960,Client Build 888。 .NET RavenDB客户端1.2.2068。