У меня есть приложение, в котором я храню отладочную информацию из нескольких источников. Данные хранятся в классе, как следующее:Группировка элементов на основе последнего добавленного элемента в наборе
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){...}
}
Теперь у меня уже есть индексы настройки и карты/уменьшить для каждого элемента мне нужно. Теперь я хотел бы сделать следующее:
При добавлении нового элемента в коллекцию, если эти элементы «выглядят одинаково» (путем вызова одного и того же метода в элементе и передачи последнего добавленного элемента в сбор), я хотел бы просто обновить последний добавленный элемент и не добавлять новый элемент. Если элементы не совпадают, я хотел бы добавить их в коллекцию.
Думаю, я могу сделать это с помощью какой-либо карты/Уменьшить, но я не могу обернуть вокруг себя эту голову. Я новичок в Raven и не знаю, как это сделать (или даже если это возможно).
Любые указания?
Спасибо Ayende. Я просто хочу группировать элементы, похожие на последний вставленный элемент. Я не хочу группировать все подобные элементы (я понимаю, как это сделать, и я на самом деле делаю это с помощью тегов). Уже сейчас, по запросу, теперь ... Могу ли я запросить последний вставленный документ, не прибегая к указателям? Поскольку для этого нужно работать, я должен быть уверен, что всегда получаю последний вставленный элемент, независимо от того, был ли он проиндексирован или нет, и я не хочу запускать WaitForNonStaleResults ... – CheloXL
Вы хотите, чтобы последний последний вставил документ? Вы можете сохранить документ «config/last-entries» и проверить их. –