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 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值