RavenDB 映射减少,减少中的重复条目
RavenDB map reduce, duplicate entries in reduce
我在 Raven 中创建了一个地图函数,看起来像这样
from order in docs.WebOrderModels
from orderLine in order.OrderLines
where order.OrderStatus.OrderStatusId == 3
select new{
orderLine.Sku,
orderLine.Quantity
}
连同以下reduce
from result in results
group result by new {result.Sku, result.Quantity} into g
select new{
Sku = g.Key.Sku,
Quantity = g.Sum(x => x.Quantity)
}
运行 这主要是有效的,除了我得到了 Sku 的重复条目,见图片:
同一个Sku编号出现两次。
当我查看数据时,除了每个订单对象的数量外,似乎没有任何差异。
我试图制作两个新的订单对象,看看当两个订单对象包含相同 sku 编号的订单行时是否会发生。但它们是按我的预期加在一起的。
我找不到任何不将两个条目缩减为一个条目的原因。
您将结果分组为:
group result by new {result.Sku, result.Quantity} into g
这将为您提供结果条目每个不同的(Sku 和数量)对
使用
group result by result.Sku
参见:
https://demo.ravendb.net/demos/csharp/static-indexes/map-reduce-index#step-4
我在 Raven 中创建了一个地图函数,看起来像这样
from order in docs.WebOrderModels
from orderLine in order.OrderLines
where order.OrderStatus.OrderStatusId == 3
select new{
orderLine.Sku,
orderLine.Quantity
}
连同以下reduce
from result in results
group result by new {result.Sku, result.Quantity} into g
select new{
Sku = g.Key.Sku,
Quantity = g.Sum(x => x.Quantity)
}
运行 这主要是有效的,除了我得到了 Sku 的重复条目,见图片:
同一个Sku编号出现两次。 当我查看数据时,除了每个订单对象的数量外,似乎没有任何差异。 我试图制作两个新的订单对象,看看当两个订单对象包含相同 sku 编号的订单行时是否会发生。但它们是按我的预期加在一起的。
我找不到任何不将两个条目缩减为一个条目的原因。
您将结果分组为:
group result by new {result.Sku, result.Quantity} into g
这将为您提供结果条目每个不同的(Sku 和数量)对
使用
group result by result.Sku
参见: https://demo.ravendb.net/demos/csharp/static-indexes/map-reduce-index#step-4