2015-05-22 40 views
4

我正在使用java驅動程序3.0.1在java小項目和mongoDB中工作。需要執行MapReduce算法並在映射函數之前執行一個查詢以減少數據並提高性能。MongoDB:使用java驅動程序3.0.x執行mapreduce和過濾器

我見過api驅動程序,並且存在MongoCollection類,方法爲mapReduce,但只能使用map和reduce函數作爲參數。它沒有任何查詢參數。

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

在舊的API,具有MapReduceCommand做到這一點的

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

有什麼建議?

謝謝大家!

回答

8

mapReduce方法上MongoCollection返回MapReduceIterable,其具有用於查詢過濾器來執行映射階段之前施加到收集filter方法的一個實例。它看起來像這樣:

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

謝謝。它很棒! ! – limkin

相關問題