lithium\data\source\MongoDb::delete()
Implements
lithium\data\Source::delete()
Delete document
Parameters
-
string
$query
-
array
$options
Returns
booleanFilter
This method can be filtered.
Source
public function delete($query, array $options = []) {
$this->_checkConnection();
$defaults = [
'justOne' => false,
'w' => $this->_config['w'],
'wTimeoutMS' => $this->_config['wTimeoutMS'],
'fsync' => false
];
$options = array_intersect_key($options + $defaults, $defaults);
$params = compact('query', 'options');
return Filters::run($this, __FUNCTION__, $params, function($params) {
$prefix = $this->_config['gridPrefix'];
$query = $params['query'];
$options = $params['options'];
$args = $query->export($this, ['keys' => ['source', 'conditions']]);
$source = $args['source'];
$conditions = $args['conditions'];
if ($source === "{$prefix}.files") {
$result = $this->_deleteFile($conditions);
} else {
$result = $this->connection->{$args['source']}->remove($conditions, $options);
$result = $this->_ok($result);
}
if ($result && $query->entity()) {
$query->entity()->sync(null, [], ['dematerialize' => true]);
}
return $result;
});
}