tp5支持MongoDB

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014678728/article/details/82776987

1安装MongoDB驱动为php

sudo pecl install mongodb

添加extension=mongodb.so到php.ini

2.然后使用 Composer 安装 ThinkPHP5.0 的 MongoDb 驱动:

composer require topthink/think-mongo


修改你的数据库配置文件 database.php 中的 type 参数为:

'type' => '\think\mongo\Connection',


接下来可以使用 Db 类直接操作 MongoDb 了,例如:

Db::name('demo')
->find();
Db::name('demo')
->field('id,name')
->limit(10)
->order('id','desc')
->select();

TP5操作mongo

1.增加

Db::name('demo')->insert([]);

2.删除
 

Db::name('demo')->where([])->delete();

3.更新
 

Db::name('demo')->where([])->update([]);

4.查看
 

Db::name('demo')->where([])->select();

设置'pk_convert_id' => true, 在database.php 强制_id为id

5.字段值是数组查询比较查询数组值
 

Db::name('demo')->where(['peopleIds.0'=>'18511834487'])->select();
peopleIds是一个数组, 查询数组第一个元素==18511834487的字段
  {
    "storeId": 171,
    "position": "ss",
    "deviceNum": "ss",
    "deviceName": "ss",
    "people": "168",
    "datetime": "2018-09-20 11:49",
    "content": "ss",
    "imgs": [],
    "peopleIds": [
      "18511834487",
      "18612784512"
    ],
    "state": "未领取",
    "receiverPeople": "",
    "id": "5ba318e738990a1b832e1de5"
  }
Db::name('demo')->where(['peopleIds'=>'18511834487'])->select();
查看peopleIds包含18511834487的记录


查询qList.qid==1的记录
Db::name('demo')->where(['qList.qid'=>1])->select();

{ 
 "_id" : "123", 
 "name" : "人文医学", 
 "qList" : [
  {
   "qid" : 1, 
   "content" : "医学伦理学的公正原则", 
   "reorderFlag" : 1
  }, 
  {
   "qid" : 2, 
   "content" : "制定有关人体实验的基本原则", 
   "reorderFlag" : 0
  }
 ]
}

6.正则表达式使用联合查询

$orders = General::mongo('malfunction')
            ->where(function ($query) {
                $query->whereOr(['peopleIds'=>cookie("phone"), 'people'=>cookie("userId")]);
            })
            ->where('datetime', 'like', '.*'.$dateTime.'.*')
            ->where('deviceNum|deviceName', 'like', '.*'.$keyword.'.*')
            ->where('state', 'like', '.*'.$state.'.*')
            ->limit(($currentPage - 1)* $pageSize, $pageSize* $currentPage)
            ->select();

猜你喜欢

转载自blog.csdn.net/u014678728/article/details/82776987
tp5