如何使用laravel删除mongodb中的子键

时间:2016-09-07 07:30:58

标签: php mongodb laravel

我使用jenssegers mongodb包。

这是我的收藏品

DB::connection('mongodb')->collection('users')->insertGetId(array('name' => 'John Doe', 'users' => [
            [
                'id' => 100,
                'wallet'=>20.20
            ],
            [
                'id' => 101,
                'wallet'=>10.66
            ]
        ]));

我试图删除特定的wallet记录。以下是代码

DB::connection('mongodb')->collection('users')->where('name', 'John Doe')->where('users.id',100)->unset('users.wallet');

但它没有按预期工作。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

要从子文档数组中取消设置字段,您必须编写users.$.wallet而不是users.wallet

DB::connection('mongodb')->collection('users')->where('name', 'John Doe')->where('users.id',100)->unset('users.$.wallet');

看看official unset documentation of mongodb。在部分行为中,将解释$ - 符号。