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

MongoDB: Perform mapreduce and filter with java driver 3.0.x

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

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

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

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

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

有什么建议吗?

谢谢大家!

mapReduce method on MongoCollection returns an instance of a MapReduceIterable, which has a filter 查询过滤器在执行映射阶段之前应用于集合的方法。它看起来像这样:

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