zoukankan      html  css  js  c++  java
  • laravel 使用 Mongodb

    好久没记录点什么了 前俩天刚弄好的 记录下: 顺便记录下我走过的坑!

    因为我这边是mac 所以首先我自己的服务安装命令说下;

      brew tap mongodb/brew 

      brew install mongodb-community  当然也可以在后面指定版本

    然后 which php 找到 PHP安装路径 进去后直接 sudo pecl install mongodb 安装 ,然后在php.ini中添加“extension=mongodb.so” 我记得安装的时候直接给我加上了好像。没有的话 还是手动添加一下。 因为我的电脑装了俩套环境 中间出了一些问题 不过不重要。

    laravel中composer安装 :

      这里出现的问题比较多。一是因为我俩套环境 一套集成 一套手动配置的 因为PHP版本的问题导致我这里出现了 php未安装mongodb  依赖 版本号等的问题。当然我这里是因为俩套环境的PHP环境变量的问题。“说下我用的集成环境 MAMP”

      但是我想多半出的应该是版本号的问题比如:

    其实这个只需要 指定版本号就好了 这里是我暗黄3.4的 

    composer require jenssegers/mongodb 3.4 --ignore-platform-reqs 最终也是安装成功了。

    最后我们来使用它:

    首先项目config的databases中新增mongodb的驱动:

      我这里是直接写的 大家可以配置到.env中。

       'mongodb' => [
                'driver' => 'mongodb',
                'host'     => '1.11.1.1',
                'port'     => 1111,
                'database' => env('MONGODB_DB', ''), // 自己数据库名字
                'username' => 'username',
                'password' => 'pwd',
            ],


    之后 提供俩中处理请求mongodb的方法:
    第一种直接使用
    $chatRecord = DB::connection("mongodb")->collection('chat_records')->insert(['from_user_id' => 1, 'from_user_type' => 'from', 'to_user_id' => 2,
                'to_user_type' => 'to', 'message' => '$message', 'is_read' => 0]);
      # 使用mongodb 连接 chat_records 集合,相当于mysql的表
    $res = DB::connection('mongodb')->collection('chat_records')->get();  # 查询所有
    第二种:使用 Eloquent:
    在app下新建一个文件夹 来创建一个全新的BashModel
    use JenssegersMongodbEloquentModel;  # 这里注意一定是mongo的EloquentModel
    class BaseModel extends Model { 

      protected $connection = 'mongodb';  # 使用的db
    }

    再创建一个model继承BashModel 主要是访问mogodb的中间层model

    class ChatRecord extends BaseModel
    {
        protected $guarded = [];
    }

      

    最后创建一个控制器 写好路由的配置后直接访问即可:<?php

    
    namespace AppHttpControllersMongodb;
    
    use AppHttpControllersController;
    use AppMongoEntitiesChatRecord;
    use IlluminateSupportFacadesDB;
    
    class TestController extends Controller
    {
    
        public function add()
        {
    
            # 新增数据

    // $chatRecord = ChatRecord::create(['from_user_id' => 1, 'from_user_type' => 'from', 'to_user_id' => 2, // 'to_user_type' => 'to', 'message' => '$message', 'is_read' => 0]);
    $chatRecord = DB::connection("mongodb")->collection('chat_records')->insert(['from_user_id' => 1, 'from_user_type' => 'from', 'to_user_id' => 2, 'to_user_type' => 'to', 'message' => '$message', 'is_read' => 0]); $res = DB::connection('mongodb')->collection('chat_records')->get(); dd($res); } }

    mongodb视图查询结果:

     

    这是我的PostMan访问结果:



    作者地址:https://www.cnblogs.com/G921123/
    创作也有乐趣 知识分享 转载注明出处 相互理解 谢谢! WeChat:17321295203
  • 相关阅读:
    OSG节点访问和遍历
    osg ifc数据渲染着色器
    osg qt kdchart 开发施工过程模拟软件
    KDChart example
    Qt kdChart 甘特图案例
    Qt KDChart编译
    osg 3ds模型加载与操作
    osg 三维模型加载与解析(fbx、3ds、ive、obj、osg)
    osg fbx 模型结构操作
    osg fbx 模型树结构
  • 原文地址:https://www.cnblogs.com/G921123/p/15292516.html
Copyright © 2011-2022 走看看