Heim > PHP-Framework > Denken Sie an PHP > Analysieren Sie die grundlegenden Operationen von Mongo im TP-Framework und ihre Schwerpunkte

Analysieren Sie die grundlegenden Operationen von Mongo im TP-Framework und ihre Schwerpunkte

藏色散人
Freigeben: 2021-09-23 09:06:33
nach vorne
2509 Leute haben es durchsucht

Die folgende thinkphpFramework-Tutorial-Kolumne führt Sie in die Funktionsweise von Mongo unter thinkphp ein. Ich hoffe, dass es für Freunde in Not hilfreich ist!

Analysieren Sie die grundlegenden Operationen von Mongo im TP-Framework und ihre Schwerpunkte

1. Mehrere bedingte Anweisungen, viele im Internet sind nur eins größer oder eins kleiner als, es gibt keine Kombination aus zwei, wie zum Beispiel größer als 2 und kleiner als 4

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

2. Gruppe

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);
Nach dem Login kopieren

3. Wenn Sie das Modellmodell zum Abfragen verwenden möchten und Ihre Hauptkonfiguration MySQL ist, müssen Sie

'mongo' => [
DB_TYPE =>  mongo            
DB_HOST => localhost   
DB_NAME => test
DB_PORT =>  40000
DB_PREFIX =>'' 
DB_USER => ''
DB_PWD => ''
],
Nach dem Login kopieren

zuerst in der Konfigurationsdatei konfigurieren und dann in der Modelldatei konfigurieren.
a.protected $trueTableName = 'Tabellenname';
b.protected $connection = 'Treibername, hier ist Mongo';
c. Dieses Modell erbt MongoModel

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

5

mongo对于数据类型的控制比较严格,如果你存个int的1,用'1'去查是查不到的!
Nach dem Login kopieren

Empfohlen: „
Die neuesten 10 Thinkphp-Video-Tutorials

Das obige ist der detaillierte Inhalt vonAnalysieren Sie die grundlegenden Operationen von Mongo im TP-Framework und ihre Schwerpunkte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage