private function mergePartial(array &$document, array $updatedDocument, $prefix = null)
{
foreach ($updatedDocument as $key => $newValue) {
// if original data is embedded document and value also - then merge
if (is_array($newValue) && isset($document[$key]) && $this->isEmbeddedDocument($document[$key])) {
$this->mergePartial($document[$key], $newValue, $prefix . $key . '.');
} else {
$document[$key] = $newValue;
$this->modifiedFields[] = $prefix . $key;
}
}
}