发布于 5年前

laravel 如何使用mongodb数据库

1.安装mongodb

下载包:wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.2.3.tgz

解压:

tar zxvf mongodb-linux-x86_64-2.2.3.tgz

移动目录到/usr/local/mongodb

mv mongodb-linux-x86_64-2.2.3 /usr/local/mongodb

进入mongodb目录

cd /usr/local/mongodb

新建自定义数据目录

mkdir -p ./data/db/

新建日志目录

mkdir logs

以后台运行方式启动mongodb

/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/logs/mongodb.log --fork

设置开机自启动:

echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/logs/mongodb.log --fork" >> /etc/rc.local

查看MongoDB日志

tail -f /usr/local/mongodb/logs/mongodb.log

查看进程

ps aux |grep mongodb

参数解释:

--dbpath 数据库路径(数据文件)

--logpath 日志文件路径

--master 指定为主机器

--slave 指定为从机器

--source 指定主机器的IP地址

--pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。

--logappend 日志文件末尾添加

--port 启用端口号

--fork 在后台运行

--only 指定只复制哪一个数据库

--slavedelay 指从复制检测的时间间隔

--auth 是否需要验证权限登录(用户名和密码)

2.安装php mongodb扩展

安装openssl

apt-get install openssl

安装php-mongodb驱动

pecl install mongodb

php --ini 查看php.ini 文件文职

在php.ini 文件中添加

extension=/{自己服务商相应的路劲}/mongodb.so

3.安装laravel 扩展

下载扩展包

composer require jenssegers/mongodb

config/app.php中注册服务

JenssegersMongodbMongodbServiceProvider::class,

别名 'Mongo' => JenssegersMongodbMongodbServiceProvider::class,

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

'mongodb' => [

    'driver'   => 'mongodb',    
    'host'     => 'localhost',    
    'port'     => 27017,    
    'database' => 'mydb', // 自己数据库名字    
    'username' => '',    
    'password' => '',
],

使用案例

use DB; //引用数据库

class MongoController extends Controller{

pubulic function index(){
    DB::connection('mongodb')       //选择使用mongodb
          ->collection('users')           //选择使用users集合
          ->insert([                          //插入数据
                  'name'  =>  'tom', 
                  'age'     =>   18
              ]);
}

$res = DB::connection('mongodb')->collection('users')->all();  
dd($res);                                            
}

参考文章:

  1. https://my.oschina.net/chinaearl/blog/111077

  2. http://www.jianshu.com/p/013fd64def17

  3. http://www.jianshu.com/p/fbab7a70cd27

©2020 edoou.com   京ICP备16001874号-3