安装组件

composer require jenssegers/mongodb

注册服务 ,在config/app.php

Jenssegers\Mongodb\MongodbServiceProvider::class,

如果打算使用.env


DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=27017
DB_DATABASE=test
DB_USERNAME=test
DB_PASSWORD=tes

修改数据库配置文件  config/database.php

添加 MongoDB 的数据库的信息:
'mongodb' => [    
        'driver'   => 'mongodb',    
        'host'     => 'localhost',    
        'port'     => 27017,    
        'database' => 'PowerSwitch',    
        'username' => '',    
        'password' => '',
],

'default' => env('DB_CONNECTION', 'mysql'),

改成: 如果仅仅使用mongo 可以修改  一般情况下 不建议修改

'default' => env('DB_CONNECTION', 'mongodb'),

// 建立一个 UserController.php 控制器
php artisan make:controller UserController
参考代码:
use DB;   //引用数据库

class MongoController extends Controller{
   
         public function Index(){
      //插入数据
        $ret = DB::insert('users')
        ->insert([
            'name'  =>  'tom',
            'age'     =>   118
        ]);

        //获取单条数据
        $res = DB::collection('users')->find('6209f085fb45615be77fb164');
        //获取多条数据
        $res = DB::collection('users')->get()->toArray();
        //获取到_id
   var_dump((string)$res[0]['_id']);


        //查询多条数据
      $res = DB::collection('users')->where('age', 118)->get()->toArray();
       //更新
       $res = DB::collection('users')->where('age', 118)->update(['name'=>"larance"]);
        //删除
        $res = DB::collection('users')->where('age', 118)->delete();


    }

                                              
}

使用model

<?php
 
namespace App\Models;
 
use Jenssegers\Mongodb\Eloquent\HybridRelations;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
 
class PowerSwitch extends Eloquent
{
    use HybridRelations;
 
    protected $collection = 'PowerSwitch';
    protected $connection = 'mongodb';
}

controller

?php

namespace App\Http\Controllers\Tc;

use Bluerhinos\phpMQTT;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Config;
use App\Models\PowerSwitch;


class PowerController extends Controller
{

    

    public function testInsert()
    {
    
        //list
     $result  = PowerSwitch::query()->get()->toArray();
        //insert

        $insert2  = PowerSwitch::query()->insert(['id' => "1", 'model' => "on", 'delay' => 50, "CreateTime" => time(),
            "computers" => "", "State" => "ok"]);


    }

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐