/** * 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; }