lithium\data\source\MongoDb::read PHP Méthode

read() public méthode

Read from document
public read ( string $query, array $options = [] ) : object
$query string
$options array
Résultat object
    public function read($query, array $options = array())
    {
        $this->_checkConnection();
        $defaults = array('return' => 'resource');
        $options += $defaults;
        $params = compact('query', 'options');
        $_config = $this->_config;
        return $this->_filter(__METHOD__, $params, function ($self, $params) use($_config) {
            $query = $params['query'];
            $options = $params['options'];
            $args = $query->export($self);
            $source = $args['source'];
            $model = $query->model();
            if ($group = $args['group']) {
                $result = $self->invokeMethod('_group', array($group, $args, $options));
                $config = array('class' => 'set', 'defaults' => false) + compact('query') + $result;
                return $model::create($config['data'], $config);
            }
            $collection = $self->connection->{$source};
            if ($source === "{$_config['gridPrefix']}.files") {
                $collection = $self->connection->getGridFS($_config['gridPrefix']);
            }
            $result = $collection->find($args['conditions'], $args['fields']);
            if ($query->calculate()) {
                return $result;
            }
            $resource = $result->sort($args['order'])->limit($args['limit'])->skip($args['offset']);
            $result = $self->invokeMethod('_instance', array('result', compact('resource')));
            $config = compact('result', 'query') + array('class' => 'set', 'defaults' => false);
            return $model::create(array(), $config);
        });
    }

Usage Example

 /**
  * Hack for embedded data
  */
 public function read($query, array $options = array())
 {
     if (!empty($options['embeddedData'])) {
         $params = compact('query', 'options');
         return $this->_filter(__METHOD__, $params, function ($self, $params) {
             return $params['options']['embeddedData'];
         });
     }
     return parent::read($query, $options);
 }
All Usage Examples Of lithium\data\source\MongoDb::read