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']); }
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; }