duanbei3747 2018-10-23 06:11
浏览 166

如何在使用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/>';
                    }
                }
            }
        );

    }

}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 程序不包含适用于入口点的静态Main方法
    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记