Rumah  >  Artikel  >  rangka kerja php  >  Analisis operasi asas mongo di bawah rangka kerja TP dan tempat perhatiannya

Analisis operasi asas mongo di bawah rangka kerja TP dan tempat perhatiannya

藏色散人
藏色散人ke hadapan
2021-09-22 17:20:302441semak imbas

Lajur tutorial rangka kerja thinkphp berikut akan memperkenalkan anda kepada operasi mongo di bawah thinkphp Saya harap ia akan membantu rakan-rakan yang memerlukan.

Analisis operasi asas mongo di bawah rangka kerja TP dan tempat perhatiannya

1. Berbilang pernyataan bersyarat, banyak di Internet hanyalah satu lebih besar daripada atau satu Kurang daripada, tidak ada dua gabungan, seperti

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

2.kumpulan

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 Jika anda ingin menggunakan model model untuk membuat pertanyaan, dan The konfigurasi utama ialah mysql, maka anda perlu mengkonfigurasinya dalam fail konfigurasi dahulu

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

dan kemudian mengkonfigurasinya dalam fail model,
a.protected $trueTableName = 'table name';
b.protected $ connection = 'Nama pemandu, ini mongo';
c Model ini mewarisi MongoModel

4 Kemas kini kumpulan

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

5.

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

Disyorkan: "10 tutorial video thinkphp terkini"

Atas ialah kandungan terperinci Analisis operasi asas mongo di bawah rangka kerja TP dan tempat perhatiannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:segmentfault.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam