0

任何人都可以好心地帮助我指导为什么我的以下代码没有从 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中删除。我的代码有什么问题,或者我怎样才能摆脱不需要的文档,包括二进制文件..提前致谢。——瓦苏杰夫。

4

1 回答 1

0

_idfield 不是 mongodb 中的字符串,它是 ObjectId 类的对象;代替

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

你应该使用

$id = (array("_id" => new MongoId($_POST["id"])));
于 2013-08-15T13:33:42.907 回答