PHP MongoDB $exist not working

RussellHarrower picture RussellHarrower · Jul 15, 2012 · Viewed 10.6k times · Source
$collection->update(array("_id"=>new MongoId($uid), "phonenumber"=> $exist => array(FALSE),$set("phone"=>"1223444"));

I would like to know why my $exist query is not working with PHP, and Mongodb if anyone could point me in the right direction that would be helpful.

Ok in the collection database there is no row called phonenumber and if there is no phonenumber i want it to insert one, but if there is phonenumber dont do anything.

Answer

Gates VP picture Gates VP · Jul 15, 2012

You have a couple of syntax issues.

  1. You're missing arrays at the second level
  2. Your operators need single quotes around them ($exist)

Here is a cleaned up sample:

$collection->update(
    array( "_id"=> new MongoId($uid), 
           array("phonenumber"=> array('$exists' => false))
         ),
    array( '$set' => array("phone"=>"1223444") )
);