次のようなドキュメントがあります。
order : 1
event : { timestamp: 1/1/2012, employeeName: "mick" },
event : { timestamp: 1/1/2012, employeeName: "mick" },
event : { timestamp: 1/2/2012, employeeName: "rick" },
event : { timestamp: 1/3/2012, employeeName: "mick" }
order : 2
event : { timestamp: 1/2/2012, employeeName: "mick" },
event : { timestamp: 1/2/2012, employeeName: "rick" }
map-reduce クエリを実行して、日付ごとにグループ化された結果のリストと、注文ごとの従業員イベントの数を返したいと考えています。
この場合、Mick は 1/1 に 1 つの注文で 2 つのイベントを持っていました。他のすべての日は、11 月 2 日と 3 日に、注文ごとに従業員による 1 つのイベントがありました。だから私は次のような結果を持つMAP関数が必要です:
{ orderId: 1, date: 1/1/2012, employee: "mick", orderEventsCount: 2 },
{ orderId: 1, date: 1/2/2012, employee: "rick", orderEventsCount: 1 },
{ orderId: 2, date: 1/2/2012, employee: "mick", orderEventsCount: 1 },
{ orderId: 2, date: 1/2/2012, employee: "rick", orderEventsCount: 1 },
{ orderId: 1, date: 1/3/2012, employee: "mick", orderEventsCount: 1 }
次に、これらの結果を取得し、日付のみでグループ化し、1 つの注文で複数のイベントを持つ従業員の 1 日あたりの数を返す REDUCE 関数が必要です。
{ date: 1/1/2012, multipleEventsPerOrdercount: 1 },
{ date: 1/2/2012, multipleEventsPerOrdercount: 0 },
{ date: 1/3/2012, multipleEventsPerOrdercount: 0 }
Mick は、1 つの注文で 1 つの日付に複数のイベントが発生した唯一の従業員であるため、結果は、1 つの日付の注文で複数のイベントが発生した 1 人の従業員の数のみを返しました。
.NET で LINQ を使用して、この map-reduce Raven クエリを記述する最良の方法は何でしょうか?
ありがとう