我在MongoDb集合中插入了三个文档,我想从集合中删除一个文档。我想从集合中删除一个文档。
这是MongoDB模型
use \Phalcon\Mvc\MongoCollection;
class AutoSnippet extends MongoCollection
{
public $name;
public $snippets = [];
public function onConstruct()
{
$this->setSource('AutoSnippet');
}
public function initialize()
{
$this->setConnectionService('mongodbTracker');
$this->getConnection()->selectCollection('AutoSnippet');
}
}
它们都能成功工作。
1)
$snippet = AutoSnippet::findById("5e80a9d2577d257fe9703314");
2)
$snippet = AutoSnippet::findFirst([[
'_id' => new MongoDB\BSON\ObjectID("5e80a9d2577d257fe9703314")
]]);
但delete()方法不工作。
$snippet->delete(); // returns true
delete()
方法返回 true
但id为 "5e80a9d2577d257fe9703314 "的文档仍然存在。
问题出在集合的名称上。由于我用大写字母命名集合,文档没有被删除。我把集合的名字改成了 "auto_snippet",然后删除就成功了。