我正在使用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)
有什么建议吗?
全部谢谢!
答案 0 :(得分:8)
MongoCollection上的mapReduce方法返回MapReduceIterable的实例,该实例具有filter方法,以便在执行映射阶段之前将查询过滤器应用于集合。它看起来像这样:
dbConnection.getCollection("test").mapReduce(mapFunction, reduceFunction)
.filter(queryFilter)