芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/.trash/cepali/cache/stores/mongodb/MongoDB/Operation/Distinct.php
isDefault()) { unset($options['readConcern']); } $this->databaseName = (string) $databaseName; $this->collectionName = (string) $collectionName; $this->fieldName = (string) $fieldName; $this->filter = $filter; $this->options = $options; } /** * Execute the operation. * * @see Executable::execute() * @param Server $server * @return mixed[] * @throws UnexpectedValueException if the command response was malformed * @throws UnsupportedException if collation or read concern is used and unsupported * @throws DriverRuntimeException for other driver errors (e.g. connection errors) */ public function execute(Server $server) { if (isset($this->options['collation']) && ! \MongoDB\server_supports_feature($server, self::$wireVersionForCollation)) { throw UnsupportedException::collationNotSupported(); } if (isset($this->options['readConcern']) && ! \MongoDB\server_supports_feature($server, self::$wireVersionForReadConcern)) { throw UnsupportedException::readConcernNotSupported(); } $cursor = $server->executeReadCommand($this->databaseName, new Command($this->createCommandDocument()), $this->createOptions()); $result = current($cursor->toArray()); if ( ! isset($result->values) || ! is_array($result->values)) { throw new UnexpectedValueException('distinct command did not return a "values" array'); } return $result->values; } public function getCommandDocument(Server $server) { return $this->createCommandDocument(); } /** * Create the distinct command document. * * @return array */ private function createCommandDocument() { $cmd = [ 'distinct' => $this->collectionName, 'key' => $this->fieldName, ]; if ( ! empty($this->filter)) { $cmd['query'] = (object) $this->filter; } if (isset($this->options['collation'])) { $cmd['collation'] = (object) $this->options['collation']; } if (isset($this->options['maxTimeMS'])) { $cmd['maxTimeMS'] = $this->options['maxTimeMS']; } return $cmd; } /** * Create options for executing the command. * * @see http://php.net/manual/en/mongodb-driver-server.executereadcommand.php * @return array */ private function createOptions() { $options = []; if (isset($this->options['readConcern'])) { $options['readConcern'] = $this->options['readConcern']; } if (isset($this->options['readPreference'])) { $options['readPreference'] = $this->options['readPreference']; } if (isset($this->options['session'])) { $options['session'] = $this->options['session']; } return $options; } }