public function testSet()
 {
     ini_set("mongo.cmd", "!");
     $this->object->save(array('name' => 'google.com'));
     $this->object->update(array(), array('!set' => array("name" => "yahoo.com")));
     $yahoo = $this->object->findOne();
     $this->assertEquals('yahoo.com', $yahoo['name']);
     ini_set("mongo.cmd", "#");
     $this->object->update(array(), array('#set' => array("name" => "askjeeves.com")));
     $jeeves = $this->object->findOne();
     $this->assertEquals('askjeeves.com', $jeeves['name']);
 }
Beispiel #2
0
 public function update($criteria, $newobj, array $options = array())
 {
     try {
         $options = array_merge($options, array('safe' => TRUE, 'multiple' => FALSE));
         return parent::update($criteria, $newobj, $options);
     } catch (MongoCursorException $e) {
         show_error("MongoDB update failed: {$e->getMessage()}", 500);
     }
 }
 public function testUpdate()
 {
     $old = (object) array("foo" => "bar", "x" => "y");
     $new = (object) array("foo" => "baz");
     $this->object->update((object) array("foo" => "bar"), $old, true);
     $obj = $this->object->findOne();
     $this->assertEquals($obj['foo'], 'bar');
     $this->assertEquals($obj['x'], 'y');
     $this->object->update($old, $new);
     $obj = $this->object->findOne();
     $this->assertEquals($obj['foo'], 'baz');
 }
 /**
  * Helper function called on gc for database sessions.
  *
  * @param integer $expiry Timestamp (defaults to current time)
  * @return boolean Success
  * @access private
  */
 public function __gc($expiry = null)
 {
     if (!$expiry) {
         $expiry = time();
     }
     // define the query
     $query = array('expiry' => array('$lt' => $expiry));
     // specify the update vars
     $update = array('$set' => array('active' => 0));
     // update options
     $options = array('multiple' => TRUE, 'safe' => TRUE, 'fsync' => TRUE);
     // update expired elements and set to inactive
     $this->_mongo->update($query, $update, $options);
     return true;
 }