PHP MongoDb 更新 $in 数组
从 MongoDB 命令行我可以执行
db.user.update({userid: {$in: [435707147,88513850,466518582]}},{$unset: {f1 : 1}})
以下操作,这将从数据库中的所有用户对象中删除变量 f1 。您如何将其转换为 PHP 语法?
我的以下运行没有错误,但没有对数据库进行任何更改。
$db->user->update(array("userid"=>array('$in'=>$ids)),
array('$unset'=> array("f1"=>1)));
From the MongoDB command line I can do
db.user.update({userid: {$in: [435707147,88513850,466518582]}},{$unset: {f1 : 1}})
Which will remove the variable f1 from all user objects in the DB. How would you translate that to PHP syntax?
I the following runs with no error, but no changes are made to the DB.
$db->user->update(array("userid"=>array('$in'=>$ids)),
array('$unset'=> array("f1"=>1)));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否设置
$ids = array(435707147, 88513850, 466518582);
?您可能还需要使用
'multiple'=>true
来一次性更新所有这些:Do you set
$ids = array(435707147, 88513850, 466518582);
?You probably also need to say it with
'multiple'=>true
to update all of them at once:Wes 是正确的,您可能会想要使用
'multiple'=>true
。如果单独的 $in 查询仍然没有返回任何结果,请确保$ids
中的元素是整数而不是字符串(尝试对每个元素调用gettype()
)。Wes is correct, you will likely want to use
'multiple'=>true
. If the the $in query alone still doesn't return any results, make sure the elements in$ids
are integers and not strings (try callinggettype()
on each element).