我们有一个包含流媒体视频的网站,我们希望在上周,月份和年份(滚动窗口)显示三个最受关注视频的报告.
每次观看视频时,我们都会在ravendb中存储一个文档:
public class ViewedContent
{
public string Id { get; set; }
public int ProductId { get; set; }
public DateTime DateViewed { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我们无法确定如何定义最能支持生成这三个报告的索引/ mapreduces.
我们尝试了以下map/reduce.
public class ViewedContentResult
{
public int ProductId { get; set; }
public DateTime DateViewed { get; set; }
public int Count { get; set; }
}
public class ViewedContentIndex :
AbstractIndexCreationTask<ViewedContent, ViewedContentResult>
{
public ViewedContentIndex()
{
Map = docs => from doc in docs
select new
{
doc.ProductId,
DateViewed …Run Code Online (Sandbox Code Playgroud)