{ "userID" : 1, "amount" : 2, "date" : ISODate("2012-04-03T20:53:19.490Z") }
{ "userID" : 1, "amount" : 4, "date" : ISODate("2012-04-03T20:53:19.490Z") }
{ "userID" : 2, "amount" : 4, "date" : ISODate("2012-04-03T20:53:19.490Z") }
{ "userID" : 3, "amount" : 1, "date" : ISODate("2012-04-03T20:53:19.490Z") }
{ "userID" : 1, "amount" : 2, "date" : ISODate("2012-04-03T20:53:19.490Z") }
当我计算购买的总和时,我正在执行增量 Map/Reduce 操作。m/r 函数很简单,这里就不写了。
MapReduceCommand cmd = new MapReduceCommand(coll, map, reduce, "result", MapReduceCommand.OutputType.MERGE, null);
结果如下。这是完美的:
{ "_id" : 1, "value" : 8 }
{ "_id" : 2, "value" : 4 }
{ "_id" : 3, "value" : 1 }
如果将 userIF 4 的用户添加到系统中,我的增量 map reduce 将处理它,并将新行添加到结果集合中。
问题:如果 userID 2 将从系统中删除,他的行仍将保留在结果集合中。使用增量 Map reduce 时如何处理这些陈旧的值?