分类 MongoDB 下的文章

我的个人博客:逐步前行STEP

1、$exist

查询 是否存在这个字段

//查询所有存在标签你字段的博客
App\Blog::where('tags','$exist',true)->get()

2、$in

查询 是否存在 【数组字段中的元素在列表中出现】

//查询所有包含标签tag_a或者tag_b的博客
App\Blog::whereRaw(['tags'=>['$in'=>["tag_a","tag_b"]]])->get()

3、$all

查询 是否存在 【数组字段中的元素全部在列表中】

//查询所有包含标签tag_a和tag_b的博客
App\Blog::whereRaw(['tags'=>['$all'=>["tag_a","tag_b"]]])->get()

4、$size

查询数组字段 tags 满足指定元素个数的文档

App\Blog::where('tags', 'size', 3)->get();

5、$where

条件过滤语句

App\Blog::whereRaw(['$where'=>'this.image_cnt = this.verify_image_cnt'])->get()

我的个人博客:逐步前行STEP

安装MongoDB

1、下载源码

在mongodb官方下载自己需要的版本:https://www.mongodb.com/download-center/community

2、解压

tar -zxvf mongodb-linux-x86_64-4.0.6.tgz

3、创建配置文件

#vi mongodb.conf
写入:
port=27017 #端口
dbpath=/usr/local/mongodb/data #数据库存文件存放目录
logpath=/usr/local/mongodb/log/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=true #以守护进程的方式运行,创建服务器进程
maxConns=100 #最大同时连接数
noauth=true #不启用验证
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=wiredTiger  #存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0  #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB

5、配置环境变量

#vi /etc/profile
写入:export PATH=/usr/local/mongodb/bin:$PATH
#source /etc/profile

6、使用配置文件启动mongo

mongo -f /usr/local/mongo/mongodb.conf

7、将mongodb配置成服务

vi /etc/init.d/mongodb
写入:
#!/bin/sh
#
#mongod - Startup script for mongod
#
# chkconfig: - 85 15
# description: Mongodb database.
# processname: mongod
# Source function library

. /etc/rc.d/init.d/functions
# things from mongod.conf get there by mongod reading it
# OPTIONS
OPTIONS=" -f /usr/local/mongodb/mongodb.conf  &"
#mongod
mongod="/usr/local/mongodb/bin/mongod"
lockfile=/var/lock/subsys/mongod
start()
{
  echo -n $"Starting mongod: "
  daemon $mongod $OPTIONS
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch $lockfile
}

stop()
{
  echo -n $"Stopping mongod: "
  killproc $mongod -QUIT
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && rm -f $lockfile
}

restart () {
        stop
        start
}
ulimit -n 12000
RETVAL=0

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart|reload|force-reload)
    restart
    ;;
  condrestart)
    [ -f $lockfile ] && restart || :
    ;;
  status)
    status $mongod
    RETVAL=$?
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
    RETVAL=1
esac
exit $RETVAL

将启动脚本设置可执行权限

chmod +x /etc/init.d/mongodb

8、设置开机启动

chkconfig   --add  mongodb
chkconfig mongodb on

9、开启、关闭mongodb服务

service mongodb start
service mongodb stop
service mongodb restart