lithium\data\source\MongoDb::delete PHP Method

delete() public method

Delete document
public delete ( string $query, array $options = [] ) : boolean
$query string
$options array
return boolean
    public function delete($query, array $options = array())
    {
        $this->_checkConnection();
        $_config = $this->_config;
        $defaults = array('justOne' => false, 'w' => $_config['w'], 'wTimeoutMS' => $_config['wTimeoutMS'], 'fsync' => false);
        $options = array_intersect_key($options + $defaults, $defaults);
        $params = compact('query', 'options');
        return $this->_filter(__METHOD__, $params, function ($self, $params) use($_config) {
            $query = $params['query'];
            $options = $params['options'];
            $args = $query->export($self, array('keys' => array('source', 'conditions')));
            $source = $args['source'];
            $conditions = $args['conditions'];
            if ($source === "{$_config['gridPrefix']}.files") {
                $result = $self->invokeMethod('_deleteFile', array($conditions));
            } else {
                $result = $self->connection->{$args['source']}->remove($conditions, $options);
                $result = $self->invokeMethod('_ok', array($result));
            }
            if ($result && $query->entity()) {
                $query->entity()->sync(null, array(), array('dematerialize' => true));
            }
            return $result;
        });
    }

Usage Example

Ejemplo n.º 1
0
 public function testDeleteNoConnectionException()
 {
     $db = new MongoDb(array('host' => '__invalid__', 'autoConnect' => false));
     $this->assertException('Could not connect to the database.', function () use($db) {
         $db->delete(null);
     });
 }
All Usage Examples Of lithium\data\source\MongoDb::delete