无法使用PHP从Mongodb数据库中删除文档


Not able to delete document from Mongodb database with PHP

有人能帮我解释一下为什么我的以下代码没有从gridfs中删除文档吗:

<?php
  error_reporting(0); 
  $m = new Mongo();
  $db = $m->myDB;
  $gridFS = $db->getGridFS();
  $coll= $db->fs->files;
    if(isset($_POST['submit'])){
    echo "Trying to delete the doc. <br />";
    $id = (array("_id" => $_POST["id"]));
    $file = $gridFS->findOne(array("_id" => $id), true);
    $r = $gridFS->delete($id);
    if($r){echo "Document deleted. <br />";}
    }
?>

尽管如此,我还是收到了"文档已删除"的回复但实际上php并没有从gridfs中删除该文档。我的代码出了什么问题,或者我如何处理不需要的文档,包括二进制文件。。提前谢谢。——瓦苏德夫。

_id字段不是mongodb中的字符串,它是ObjectId类的对象;而不是

$id = (array("_id" => $_POST["id"]));

你应该使用

$id = (array("_id" => new MongoId($_POST["id"])));