original_string: private function createCommand(Server $server)
      {
          $cmd = [
              'aggregate' => isset($this->collectionName) ? $this->collectionName : 1,
              'pipeline' => $this->pipeline,
          ];
          $cmdOptions = [];
  
          $cmd['allowDiskUse'] = $this->options['allowDiskUse'];
  
          if (isset($this->options['bypassDocumentValidation']) && \MongoDB\server_supports_feature($server, self::$wireVersionForDocumentLevelValidation)) {
              $cmd['bypassDocumentValidation'] = $this->options['bypassDocumentValidation'];
          }
  
          foreach (['comment', 'explain', 'maxTimeMS'] as $option) {
              if (isset($this->options[$option])) {
                  $cmd[$option] = $this->options[$option];
              }
          }
  
          if (isset($this->options['collation'])) {
              $cmd['collation'] = (object) $this->options['collation'];
          }
  
          if (isset($this->options['hint'])) {
              $cmd['hint'] = is_array($this->options['hint']) ? (object) $this->options['hint'] : $this->options['hint'];
          }
  
          if (isset($this->options['maxAwaitTimeMS'])) {
              $cmdOptions['maxAwaitTimeMS'] = $this->options['maxAwaitTimeMS'];
          }
  
          if ($this->options['useCursor']) {
              $cmd['cursor'] = isset($this->options["batchSize"])
                  ? ['batchSize' => $this->options["batchSize"]]
                  : new stdClass;
          }
  
          return new Command($cmd, $cmdOptions);
      }
code: private function createCommand(Server $server)
      {
          $cmd = [
              'aggregate' => isset($this->collectionName) ? $this->collectionName : 1,
              'pipeline' => $this->pipeline,
          ];
          $cmdOptions = [];
  
          $cmd['allowDiskUse'] = $this->options['allowDiskUse'];
  
          if (isset($this->options['bypassDocumentValidation']) && \MongoDB\server_supports_feature($server, self::$wireVersionForDocumentLevelValidation)) {
              $cmd['bypassDocumentValidation'] = $this->options['bypassDocumentValidation'];
          }
  
          foreach (['comment', 'explain', 'maxTimeMS'] as $option) {
              if (isset($this->options[$option])) {
                  $cmd[$option] = $this->options[$option];
              }
          }
  
          if (isset($this->options['collation'])) {
              $cmd['collation'] = (object) $this->options['collation'];
          }
  
          if (isset($this->options['hint'])) {
              $cmd['hint'] = is_array($this->options['hint']) ? (object) $this->options['hint'] : $this->options['hint'];
          }
  
          if (isset($this->options['maxAwaitTimeMS'])) {
              $cmdOptions['maxAwaitTimeMS'] = $this->options['maxAwaitTimeMS'];
          }
  
          if ($this->options['useCursor']) {
              $cmd['cursor'] = isset($this->options["batchSize"])
                  ? ['batchSize' => $this->options["batchSize"]]
                  : new stdClass;
          }
  
          return new Command($cmd, $cmdOptions);
      }
code_tokens: private function createCommand ( Server $ server ) { $ cmd = [ 'aggregate' => isset ( $ this -> collectionName ) ? $ this -> collectionName : 1 , 'pipeline' => $ this -> pipeline , ] ; $ cmdOptions = [ ] ; $ cmd [ 'allowDiskUse' ] = $ this -> options [ 'allowDiskUse' ] ; if ( isset ( $ this -> options [ 'bypassDocumentValidation' ] ) && \ MongoDB \ server_supports_feature ( $ server , self :: $ wireVersionForDocumentLevelValidation ) ) { $ cmd [ 'bypassDocumentValidation' ] = $ this -> options [ 'bypassDocumentValidation' ] ; } foreach ( [ 'comment' , 'explain' , 'maxTimeMS' ] as $ option ) { if ( isset ( $ this -> options [ $ option ] ) ) { $ cmd [ $ option ] = $ this -> options [ $ option ] ; } } if ( isset ( $ this -> options [ 'collation' ] ) ) { $ cmd [ 'collation' ] = ( object ) $ this -> options [ 'collation' ] ; } if ( isset ( $ this -> options [ 'hint' ] ) ) { $ cmd [ 'hint' ] = is_array ( $ this -> options [ 'hint' ] ) ? ( object ) $ this -> options [ 'hint' ] : $ this -> options [ 'hint' ] ; } if ( isset ( $ this -> options [ 'maxAwaitTimeMS' ] ) ) { $ cmdOptions [ 'maxAwaitTimeMS' ] = $ this -> options [ 'maxAwaitTimeMS' ] ; } if ( $ this -> options [ 'useCursor' ] ) { $ cmd [ 'cursor' ] = isset ( $ this -> options [ "batchSize" ] ) ? [ 'batchSize' => $ this -> options [ "batchSize" ] ] : new stdClass ; } return new Command ( $ cmd , $ cmdOptions ) ; }
docstring: Create the aggregate command.
  
  @param Server  $server
  @return Command
docstring_tokens: Create the aggregate command .