mac brew 安装mongodb

docker安装docker

pull docker

docker pull docker:4.0.2

启动bash脚本

docker rm -f mongodb
docker run --name mongodb \
    -v /ssd-data/data/mongodb:/data/db \
-e ME_CONFIG_MONGODB_AUTH_DATABASE=db \
        -e MONGO_INITDB_ROOT_USERNAME=root \
    -e MONGO_INITDB_ROOT_PASSWORD=password \
    -p 27017:27017 \
    -d mongo:latest

登录用户信息

命令行登录 mongo 11.11.11.11:27017/leqv -u root -p password --authenticationDatabase admin

authdb: admin
userName: root
password: password

添加超级管理员

这步可以省略

use admin
db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})
mongo  127.0.0.1/admin  -uroot -p

laravel中使用Mongo

php7扩展使用mongo

php使用Mongo ab 测试ab -c 4 -n 100000 url

三种方式查询效率差不多

file

用户操作

登录mongo

mongo 127.0.0.1/admin -u develop -p 123456
mongo 127.0.0.1:27017/leqv  -u develop -p 123456 --authenticationDatabase admin

查看用户

db.system.users.find()

创建用户

db.createUser({
    user:"develop",
    pwd:"123456",
    roles:[{
        role:"root",
        db:"admin"
    }]
})
  • root 代表最高权限

认证用户

用户添加授权

db.auth('develop','123456')

坑点

  • mongo如果查询时间超过超时时间..还没查询到数据,会timeout.. 这时候需要加索引

laravel 打印mongo log

(DB::connection('mongodb'))->enableQueryLog();
//code
dd((DB::connection('mongodb'))->getQueryLog());

参考文章