Mongodb 如何从文档中取消设置字段
我有一个文档要删除其中的一个字段。我从他那里得到了答案。但,这是核心PHP代码,我想在CakePHP中了解如何从文档中取消设置字段 我试着用CakePHP编写以下代码Mongodb 如何从文档中取消设置字段,mongodb,cakephp,Mongodb,Cakephp,我有一个文档要删除其中的一个字段。我从他那里得到了答案。但,这是核心PHP代码,我想在CakePHP中了解如何从文档中取消设置字段 我试着用CakePHP编写以下代码 $this->MyModal->id = $id; $this->MyModal->updateAll( array('myField' => array('$exists' => true)), a
$this->MyModal->id = $id;
$this->MyModal->updateAll(
array('myField' => array('$exists' => true)),
array('unset' => array('myField' => true))
);
编辑
我也试过了
$this->MyModal->updateAll(
array('$unset' => array('myField' => 1))
);
但它不起作用。如何取消字段设置 看起来您使用了错误的“全部更新”方法。首先,必须为字段提供一个包含新值的数组,然后应传递一个包含搜索条件的数组。所以为了让它工作,你可以写
$conditions=array('myField'=>array('$exists'=>true));
$this->MyModal->updateAll(
array('$unset'=>array('myfield'=>1)),
$conditions//array of search conditions
)
运算符的前缀都是
$
,所以应该是$unset
@NeilLunn我也尝试了$unset
,但它给出了异常。什么异常?另外,数据是什么样子的?您使用哪个插件将mongodb连接到cakephp?@NeilLunn我遇到了这个异常localhost:27017:未知顶级运算符:\$unset
检查集合的名称,您还必须传递一个条件数组,或者如果要更改所有文档,必须提供一个空数组