Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb php更新$pull_Php_Mongodb_Pull - Fatal编程技术网

mongodb php更新$pull

mongodb php更新$pull,php,mongodb,pull,Php,Mongodb,Pull,有一个集合“emailDeliveryActive”: 必须来自“收件人”数组才能从给定电子邮件中删除项目。 这样做: $result = $mongoDB->emailDeliveryActive->update( array('_id' => $emailDelivery['_id']), array( '$pull'=>array( 'recipients.$.email' => 'test1@gmail.com' ) ) ); $result将变为TRUE

有一个集合“emailDeliveryActive”:

必须来自“收件人”数组才能从给定电子邮件中删除项目。 这样做:

$result = $mongoDB->emailDeliveryActive->update(
array('_id' => $emailDelivery['_id']),
array(
'$pull'=>array(
'recipients.$.email' => 'test1@gmail.com'
)
)
);

$result将变为TRUE,但集合不会更改。我做错了什么?

您不需要$运算符-它用于“查询中匹配数组项的位置”-在这里使用没有意义。试试看:

 $result = $mongoDB->emailDeliveryActive->update(
     array('_id' => $emailDelivery['_id']),
     array(
          '$pull'=> array('recipients' => array('email' => 'test1@gmail.com'))
          )
 );
 $result = $mongoDB->emailDeliveryActive->update(
     array('_id' => $emailDelivery['_id']),
     array(
          '$pull'=> array('recipients' => array('email' => 'test1@gmail.com'))
          )
 );