我正在尝试使用 $pull
更新查询删除对文档的引用(为了删除所述文档),但似乎没有任何反应。
我可以手动运行以下 Mongo 查询
db.collection.update({}, {
$pull: {
'field': {'$id': ObjectId("xxxxxxxx")}
}
}, false, true)
效果很好。尝试在 Doctrine 的 ODM 中做同样的事情既不会产生预期的结果,也不会产生任何错误消息。这是我们目前所拥有的
$id = new MongoId("xxxxxxxx");
$qb = $repo->createQueryBuilder();
$qb->update();
$qb->field('field')->pull(array('$id' => $id));
$qb->getQuery()->execute();
关于我做错了什么的任何提示?
最佳答案
啊,翻遍了 Doctrine 代码终于找到了...
必须将 multi
选项传递给 MongoCollection::update()
$qb->getQuery(array('multiple' => true))->execute();
关于php - Doctrine Mongo 更新 $pull 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7171627/