code: public CommandResult explainAggregate(final List<? extends DBObject> pipeline, final AggregationOptions options) {
          AggregateOperation<BsonDocument> operation = new AggregateOperation<BsonDocument>(getNamespace(), preparePipeline(pipeline),
                                                                                            new BsonDocumentCodec())
                                                           .maxTime(options.getMaxTime(MILLISECONDS), MILLISECONDS)
                                                           .allowDiskUse(options.getAllowDiskUse())
                                                           .collation(options.getCollation())
                                                           .retryReads(retryReads);
          return new CommandResult(executor.execute(operation.asExplainableOperation(ExplainVerbosity.QUERY_PLANNER), primaryPreferred(),
                  getReadConcern()));
      }
docs: Return the explain plan for the aggregation pipeline.
  
  @param pipeline the aggregation pipeline to explain
  @param options  the options to apply to the aggregation
  @return the command result.  The explain output may change from release to release, so best to simply log this.
  @mongodb.driver.manual core/aggregation-pipeline/ Aggregation
  @mongodb.driver.manual reference/operator/meta/explain/ Explain query
  @mongodb.server.release 2.6