MongoDB:使用java驱动程序3.0.x执行mapreduce和过滤

时间:2015-05-22 14:31:09

标签: java mongodb mapreduce driver

我正在使用java驱动程序3.0.1在java小项目和mongoDB中工作。需要执行MapReduce算法并在映射函数之前,执行一个查询以获得更少的数据并提高性能。

我见过api驱动程序并且使用方法mapReduce 存在MongoCollection类,但只有map和reduce函数作为参数。它没有任何查询参数。

dbConnection.getCollection("test").mapReduce(mapFunction, reduceFunction)

在旧的API中,MapReduceCommand用于执行此操作

MapReduceCommand cmd = new MapReduceCommand("test", map, reduce, null, MapReduceCommand.OutputType.INLINE, query)

有什么建议吗?

全部谢谢!

1 个答案:

答案 0 :(得分:8)

MongoCollection上的mapReduce方法返回MapReduceIterable的实例,该实例具有filter方法,以便在执行映射阶段之前将查询过滤器应用于集合。它看起来像这样:

dbConnection.getCollection("test").mapReduce(mapFunction, reduceFunction)
                                  .filter(queryFilter)