public function delete($query, array $options = array())
{
$params = compact('query', 'options');
$conn =& $this->connection;
$config = $this->_config;
return $this->_filter(__METHOD__, $params, function ($self, $params) use(&$conn, $config) {
$query = $params['query'];
$params = $query->export($self);
list($_path, $conditions) = $params['conditions'];
$data = $query->data();
if (!empty($data['rev'])) {
$conditions['rev'] = $data['rev'];
}
$result = json_decode($conn->delete("{$config['database']}/{$_path}", $conditions));
$result = isset($result->ok) && $result->ok === true;
if ($query->entity()) {
$query->entity()->sync(null, array(), array('dematerialize' => true));
}
return $result;
});
}