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

lim*_*kin 4 java mapreduce driver mongodb

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

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

dbConnection.getCollection("test").mapReduce(mapFunction, reduceFunction)
Run Code Online (Sandbox Code Playgroud)

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

MapReduceCommand cmd = new MapReduceCommand("test", map, reduce, null, MapReduceCommand.OutputType.INLINE, query)
Run Code Online (Sandbox Code Playgroud)

有什么建议?

谢谢大家!

jye*_*min 8

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

dbConnection.getCollection("test").mapReduce(mapFunction, reduceFunction)
                                  .filter(queryFilter)
Run Code Online (Sandbox Code Playgroud)