有没有人可以帮助我指导为什么我的以下代码没有从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中删除。我的代码有什么问题,或者如何摆脱不需要的文件,包括二进制文件.. 提前致谢。 - 瓦苏德夫。
答案 0 :(得分:0)
_id
字段不是mongodb中的字符串,它是ObjectId类的对象;而不是
$id = (array("_id" => $_POST["id"]));
你应该使用
$id = (array("_id" => new MongoId($_POST["id"])));