php - 为什么MongoDB集合中Phalcon\Mvc\Collection的delete()方法可能不起作用?
问题描述
我将三个文档插入到 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”并且删除工作有效。
推荐阅读
- c# - 在 Do/while 循环 C# 中显示错误消息
- javascript - 如何在网站上嵌入 Facebook 商店页面
- go - 在 golang 中退出 status 1
- python - 使用python Gurobi优化器及时均匀地安排事件
- android - 从同一项目中的 android 模块调用 Composable 函数
- python - Flask 返回 FileNotFoundError: [Errno 2] No such file or directory
- python - Python BeautifulSoup Scraper - apply function to each
- element in
- on page
- element in
- azure-iot-hub - IoT 中心部署清单:可以指定模块标识标签吗?
- operating-system - sleep() 函数完成后是否会导致定时器中断?
- com - 如何从 Microsoft.Office.Interop.Visio.DocumentsClass.Open 诊断 COMException“此文件名无效”