/**
  * Update record in database with data from document
  * @param array|MongoDbCriteria $criteria
  * @param array $document
  * @return bool whether record is succesfully updated or not
  */
 public function updateAll($criteria, $document)
 {
     if ($this->beforeSave()) {
         $updateCriteria = [];
         if ($this->criteria instanceof MongoDbCriteria) {
             if (is_array($criteria)) {
                 $this->criteria->mergeWithArray($criteria);
                 $updateCriteria = $this->criteria->getConditions();
             } else {
                 if ($criteria instanceof MongoDbCriteria) {
                     $this->criteria->mergeWithBuilder($criteria);
                     $updateCriteria = $this->criteria->getConditions();
                 } else {
                     $updateCriteria = $criteria;
                 }
             }
         }
         $saved = $this->getCollection()->update($updateCriteria, ['$set' => $document], ['w' => $this->safe, 'fsync' => $this->fsync, 'multiple' => true]);
         if ($saved) {
             $this->afterSave();
             return true;
         }
     }
     return false;
 }