Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MongoDB update: how to check if an update succeeds or fails?

Tags:

php

mongodb

I'm working with MongoDB in PHP using the pecl driver. My updates are working great, but I'd like to build some error checking into my function(s).

I've tried using lastError() in a pretty simple function:

function system_db_update_object($query, $values, $database, $collection) {
    $connection = new Mongo();
    $collection = $connection->$database->$collection;
    $connection->$database->resetError(); //Added for debugging
    $collection->update(
        $query,
        array('$set' => $values));
    //$errorArray = $connection->$database->lastError();
    var_dump($connection->$database->lastError());exit; // Var dump and /Exit/
}

But pretty much regardless of what I try to update (whether it exists or not) I get these same basic results:

array(4) {
  ["err"]=>
  NULL
  ["updatedExisting"]=>
  bool(true)
  ["n"]=>
  float(1)
  ["ok"]=>
  float(1)
}

How do I know if the update succeeds or failed?

like image 442
zmg Avatar asked Jun 02 '10 23:06

zmg


1 Answers

the "n" field is the number of documents that were updated, and "updatedExisting" tells whether any document was updated at all. you should be able to check those fields to see whether an update succeeded or not.

like image 53
mdirolf Avatar answered Oct 21 '22 13:10

mdirolf