根据集合中最后添加的项目对项目进行分组

时间:2015-11-16 20:39:40

标签: mapreduce ravendb

我有一个应用程序,我存储来自多个来源的调试信息。数据存储在如下类中:

public class DebugMessage
{
    public string ApplicationName { get; set; }
    public string Details { get; set; }
    public string Id { get; set; }
    public DateTime OccurredOn { get; set; }
    public IList<string> Tags { get; set; }
    public string TextMessage { get; set; }
    public MessageTypes Type { get; set; }
    public IDictionary<string, string> Metadata { get; set; }

    public int Count {get;set;}

    public bool Same(DebugMessage other){...}
}

现在,我已经为我需要的每个项目设置了索引和贴图/缩小。我现在想做的是:

将新项目添加到集合时,如果此项目&#34;看起来相同&#34; (通过在项目上调用Same方法并传入集合中最后添加的项目),我想只更新最后添加的项目而不添加新项目。如果项目不一样,我想将它添加到集合中。

我想我可以通过某种Map / Reduce来做到这一点,但我无法解决这个问题。我是Raven的新手,并且不知道如何做到这一点(或者即使可能的话)。

任何指示?

1 个答案:

答案 0 :(得分:0)

您需要将同一方法移动到map / reduce索引,并根据使您认为两件事情相同的值进行分组。 或者,查询类似的调试消息,并更新结果。