Search code examples
phpmongodbyii-extensionsyii

update query for Mongodb in yii


How can I update based on _id in mongodb for YII? What I tried is

    $model= new MongoUrls();
      $criteria = new EMongoCriteria;
      $criteria->userid('==', $userid);
      $criteria->screenshot_path('!=', null);
      $criteria->screenshot_uploaded('!=', 1);
      $availablescreenshots=$model-> findAll($criteria);

      if(count($availablescreenshots)>0){
        foreach($availablescreenshots as $obj1){
             $path_parts = pathinfo($obj1->screenshot_path);

             if($social->upload($obj1->screenshot_path, 'test',$path_parts['basename']))          {

     $model->updateAll(array('_id'=>$obj1->_id  ), array('screenshot_uploaded'=>1)  );

} 
                            }

                        }

But it shows an error "The EMongoDocument cannot be updated because it is new." in Yii .

I want to update a document where _id matches same value


Solution

  • The method worked for me was

    $modifier = new EMongoModifier();
    $modifier->addModifier('screenshot_uploaded', 'set', '1');
    $criteria = new EMongoCriteria();
    $criteria->addCond('_id','==', $obj1->_id   );           
    $model->updateAll($modifier,$criteria   );