我有一个应用程序,我存储来自多个来源的调试信息。数据存储在如下类中:
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的新手,并且不知道如何做到这一点(或者即使可能的话)。
任何指示?
答案 0 :(得分:0)
您需要将同一方法移动到map / reduce索引,并根据使您认为两件事情相同的值进行分组。 或者,查询类似的调试消息,并更新结果。