从MongoDB集合中删除数组元素不起作用

时间:2016-06-13 08:21:39

标签: php mongodb

我有这个数据

{
   "_id": ObjectId("575e66a4c2b503944800002b"),
   "phone": "201-780-8497",
   "orders": [
     "1961682636",
     "43243242" 
  ] 
}

我想删除order'43243242',其中phone是“201-780-8497”

这是我的PHP代码

$collection->update(
        array('phone'=>$doc['phone']),
        array('$pull' => array('orders' => array('1961682636'), array('safe' => TRUE))
));

这没什么,没有错误,没有例外。

我哪里出错?

1 个答案:

答案 0 :(得分:2)

您的更新操作应该是:

db.collection.update(
    { "phone" : "201-780-8497" },
    { "$pull": { "orders": "43243242" } }
)

和您的PHP代码:

$collection->update(
    array('phone' => '201-780-8497'),
    array('$pull' => array('orders' => '43243242'))
);

您在 $pull 语法上出错了;您不需要将要删除的元素作为 $pull 文档推送到数组,只需引用该值即可。有关更详细的说明,请参阅docs