>  기사  >  PHP 프레임워크  >  TP 프레임워크 하에서의 mongo의 기본 동작과 주의점을 분석합니다.

TP 프레임워크 하에서의 mongo의 기본 동작과 주의점을 분석합니다.

藏色散人
藏色散人앞으로
2021-09-22 17:20:302441검색

다음 thinkphp프레임워크 튜토리얼 칼럼에서는 thinkphp에서의 mongo 작동을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

TP 프레임워크 하에서의 mongo의 기본 동작과 주의점을 분석합니다.

1. 여러 조건문에서 작동, 인터넷의 많은 조건문은 2보다 크거나 4보다 작거나 두 개가 결합되지 않습니다.

$where['_string'] = 'this.b > 2 & this.b<4&#39;;

2.group

mysql:
$res = $model->where(['sTaskId'=>['$in'=>$task_array]])->group('a')->field('a,sum(a)')->select();

mongodb:
$key = ['a'=>1]; //groupby的字段
$init = ['num'=>0];//统计的初始值
$option = array(
'table' => 'course’, // 表名
'condition’=>['sTaskId'=>['$in'=>$task_array]], //group中过滤条件
);
//必须要带option
$reduce = "function(obj, prev){prev.num = prev.num+obj.a}";
$model = new TestModel();
$res = $model->group($key, $init, $reduce, $option);
这里讲一下tp的mongo扩展是有问题的,在group里调用where会无效,具体解决方案是要在mongo.class.php文件
a.把$query改为如下:
$query  =  $this->parseWhere(isset($options['condition'])?$options['condition']:array());
当然$this->queryStr  也要改的
b.把$group改为:
$group = $this->_collection->group($keys,$initial,$reduce,$query);
3. 모델 모델을 사용하여 쿼리하고, 기본 구성이 mysql인 경우 먼저 구성 파일에

'mongo' => [
DB_TYPE =>  mongo            
DB_HOST => localhost   
DB_NAME => test
DB_PORT =>  40000
DB_PREFIX =>'' 
DB_USER => ''
DB_PWD => ''
],
를 구성한 후 모델 파일

에 구성해야 합니다. a.protected $trueTableName = '테이블 이름';
b.protected $connection = '드라이버 이름은 mongo입니다.';
c. 이 모델은 MongoModel

4을 상속합니다. Mongo 참고:

mysql里只要$res = $model->save(['a'=>1']);
mongo的话需要写成$res = $model->where([])->save(['a'=>1]);

추천: "
최신 10가지 thinkphp 비디오 튜토리얼

위 내용은 TP 프레임워크 하에서의 mongo의 기본 동작과 주의점을 분석합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제