docs: public final <R> Iterable<R> mapReduce(String name, DBObject query, DBObject sort, Map<String, Object> scope, final MapReduceResultHandler<R> conv) {
          String map = this.getMRFunction(name, "map");
          String reduce = this.getMRFunction(name, "reduce");
  
          MapReduceCommand mrc = new MapReduceCommand(this.collection.getDBCollection(), map, reduce, null, MapReduceCommand.OutputType.INLINE, query);
          String finalizeFunction = this.getMRFunction(name, "finalize");
          if(finalizeFunction != null) {
              mrc.setFinalize(finalizeFunction);
          }
          if(sort != null) {
              mrc.setSort(sort);
          }
          if(scope != null) {
              mrc.setScope(scope);
          }
          MapReduceOutput mr = this.collection.getDBCollection().mapReduce(mrc);
          return new ConverterIterable<R>(mr.results().iterator(), conv);
      }