如何在使用Laravel时删除MongoDb json中的属性

I wanted to fix some things in my MongoDb and I needed to add attributes fast.

I did this, fast, using the add method.

Now, I want to fix and remove some attributes.

As you can see, by using isset($department[$arr['attribute']]) I will know if the attribute exists.

If the attribute exists, I set the empty value $department[$arr['attribute']] = ''; and then I use the unset method unset($department[$arr['attribute']]);

The remove method does'n do it's job.

Any ideas why ?

<?php


namespace App\Http\Controllers\Api;

use App\Department;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;

class FixController extends Controller
{

    protected $concept;

    /**
     * DepartmentController constructor.
     */
    public function __construct()
    {
        $this->middleware(
            function ($request, $next) {
                $this->concept = Auth::user()->current_desk_artifacts[0];
                return $next($request);
            }
        );
    }

    public function add($attribute, $value)
    {

        $counter = 0;

        $arr = [
            'attribute' => $attribute,
            'value' => $value,
            'counter' => &$counter
        ];

        Department::chunk(
            100,
            function ($departments) use ($arr) {
                print_r($arr);
                echo '<br/>';
                foreach ($departments as $department) {
                    if (
                    !isset($department[$arr['attribute']])
                    ) {
                        $department[$arr['attribute']] = $arr['value'];
                        $department->save();
                        $arr['counter']++;
                        echo $arr['counter'];
                        echo '<br/>';
                    }
                }
            }
        );

    }

    public function remove($attribute, $value)
    {

        $counter = 0;

        $arr = [
            'attribute' => $attribute,
            'value' => $value,
            'counter' => &$counter
        ];

        Department::chunk(
            100,
            function ($departments) use ($arr) {
                print_r($arr);
                echo '<br/>';
                foreach ($departments as $department) {
                    if (
                    isset($department[$arr['attribute']])
                    ) {
                        $department[$arr['attribute']] = '';
                        unset($department[$arr['attribute']]);
                        $department->save();
                        $arr['counter']++;
                        echo $arr['counter'];
                        echo '<br/>';
                    }
                }
            }
        );

    }

}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问