为什么 MongoDB 集合中 Phalcon\Mvc\Collection 的 delete() 方法可能不起作用?
Why the delete() method of Phalcon\Mvc\Collection in the MongoDB collection may not work?
我向 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()
方法 returns true
但 ID 为“5e80a9d2577d257fe9703314”的文档仍然存在。
问题出在集合的名称上。由于我将集合命名为大写,因此文档没有被删除。我将集合的名称更改为 "auto_snippet" 并且删除成功了。
我向 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()
方法 returns true
但 ID 为“5e80a9d2577d257fe9703314”的文档仍然存在。
问题出在集合的名称上。由于我将集合命名为大写,因此文档没有被删除。我将集合的名称更改为 "auto_snippet" 并且删除成功了。