mongoDB - map中的陈旧值减少输出集合

时间:2012-04-03 21:46:24

标签: java mongodb mapreduce

{ "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时,如何处理此类过时值?

0 个答案:

没有答案