{ "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的用户添加到系统中,我的增量地图缩减将处理它,并且新行将添加到结果集合中。
问题:如果将从系统中删除userID 2,他的行仍将保留在结果集合中。使用增量Map reduce时,如何处理此类过时值?