1
{ "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 时如何处理这些陈旧的值?

4

0 回答 0