2
这是我用来运行地图减少sourceCollectionName
并得到输出到targetCollectionName
的代码。但是targetCollectionName永远不会被创建。MongoDB Java驱动程序3.0 MapReduce
new MongoClient("localhost").getDatabase(dbName).getCollection(sourceCollectionName)
.mapReduce(map, reduce)
.action(MapReduceAction.REPLACE)
.databaseName(dbName)
.collectionName(targetCollectionName)
.sharded(false);
虽然我能够得到输出MapReduceIterable
,当我重复这个结果如预期倾倒。这是做到这一点的正确方法吗?
MapReduceIterable mapReduceIterable = new MongoClient("localhost").getDatabase(dbName).getCollection(sourceCollectionName)
.mapReduce(map, reduce)
.action(MapReduceAction.REPLACE)
.databaseName(dbName)
.collectionName(targetCollectionName)
.sharded(false);
for(Object o:mapReduceIterable){
//Just Iterating makes map reduce to dump output collection
}
是的。这将解决我对不必要迭代的担心。 :) – Harshil