В моей базе данных есть список дел:
{ Id: 1, Owner: "guid1", Text: "Question1" }
{ Id: 2, Owner: "guid1", Text: "Question2" }
{ Id: 3, Owner: "guid2", Text: "Question3" }
При запросе данных я также хотел бы иметь (в моем индексе, результате) количество дел, которые есть у каждого владельца. Итак, я создал карту / уменьшить индекс для этой коллекции:
public class RelatedCases
{
public Guid Owner { get; set; }
public int Count { get; set; }
}
public class RelatedCaseIndex : AbstractMultiMapIndexCreationTask<RelatedCases>
{
public RelatedCaseIndex()
{
AddMap<CaseDocument> (c => c.Select(a => new { a.Owner, Count = 1 }));
Reduce = result => result
.GroupBy(a => a.Owner)
.Select(a => new
{
Owner = a.Key,
Count = a.Sum(b => b.Count)
});
}
}
Теперь я просто не знаю, как создать запрос для включения данных из индекса. На основании документации я попробовал что-то вроде:
session.Query<CaseDocument>().Customize(a => a.Include ...)
или TransformResults для CaseIndex, которые не сработали должным образом.
Я знаю, что мог бы просто запросить ворона, чтобы получить список всех связанных случаев в отдельном запросе, но я бы хотел сделать это за один раз.