我有两个集合:
- 顺序:{_id,订单ID,参数,[默认空摘要]等}
- 批处理:{ _id、订单 ID、阶段 1 { 计划、完成 }、阶段 2 { 计划、完成} 等 }
订单有 0..n 个批次("生产批次")。(我正在使用_id和"OrderId",因为它来自外部系统。
我正在对"批处理"进行地图缩减。
结果是:
{
_id: ORDER_ID,
value: {
Phase1: {Planned: 100, Done: 60},
Phase2: {Planned: 60, Done: 20}
}
在集合"order_summary"中。
如何将此结果插入到集合"订单"中(确切地说:订单.摘要)?这可能吗?
Map-Reduce是关于聚合而不是修改的。基于 Map-Reduce 操作结果的进一步操作取决于您和您的代码,完全超出了 MR 的范围。
它并不是真正为此目的而设计的,但是您是否尝试过使用finalize函数来为您执行此操作? 否则,执行此工作的正常位置是在map-reduce完成时运行的客户端代码中。