Вот что я придумал.
Карта:
from doc in docs
where doc["@metadata"]["Raven-Entity-Name"] == "Books"
select new { Name = "Total", Price = doc.Price };
Сокращение:
from result in results
group result by result.Name
into g
select new { Name = g.Key, Price = g.Sum(x => x.Price) }
Однако я смог заставить это работать, только если изменил цену на целое число. Итак, мои два документа выглядят так:
{
"Name":"B",
"Price":4
}
{
"Name":"A",
"Price":10
}
И мой вывод в формате JSON выглядит следующим образом:
{"Results":[{"Name":"Total","Price":"14","Price_Range":"14"}],"IsStale":false,"TotalResults":1}
Очевидно, что изменение цены на целые числа не является решением. Это может быть ошибка в RavenDB, но я сам новичок в этом, так что я надеюсь, что это просто то, как я делаю Sum()
или способ представления данных в документе.