有人能帮我解释一下为什么我的以下代码没有从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"])));