public function update($criteria, $data)
{
$sql = 'SELECT id, document FROM ' . $this->name . ' WHERE document_criteria("' . $this->database->registerCriteriaFunction($criteria) . '", document)';
$stmt = $this->database->connection->query($sql);
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
foreach ($result as &$doc) {
$document = array_merge(json_decode($doc["document"], true), $data);
$sql = "UPDATE " . $this->name . " SET document=" . $this->database->connection->quote(json_encode($document, JSON_NUMERIC_CHECK | JSON_UNESCAPED_UNICODE)) . " WHERE id=" . $doc["id"];
$this->database->connection->exec($sql);
}
return count($result);
}