PHP MongoDb 更新 $in 数组

发布于 2024-12-28 18:18:25 字数 378 浏览 0 评论 0原文

从 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清欢 2025-01-04 18:18:25

您是否设置 $ids = array(435707147, 88513850, 466518582);

您可能还需要使用 'multiple'=>true 来一次性更新所有这些:

$db->user->update(array("userid"=>array('$in'=>$ids)), 
   array('$unset'=> array("f1"=>true)), 
   array('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:

$db->user->update(array("userid"=>array('$in'=>$ids)), 
   array('$unset'=> array("f1"=>true)), 
   array('multiple'=>true));
悍妇囚夫 2025-01-04 18:18:25

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 calling gettype() on each element).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文