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

藏色散人
풀어 주다: 2021-09-23 09:06:33
앞으로
2458명이 탐색했습니다.

다음 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿