Rumah > rangka kerja php > ThinkPHP > teks badan

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

藏色散人
Lepaskan: 2021-09-23 09:06:33
ke hadapan
2458 orang telah melayarinya

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;;
Salin selepas log masuk

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);
Salin selepas log masuk

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 => ''
],
Salin selepas log masuk

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]);
Salin selepas log masuk

5.

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

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!

Label berkaitan:
sumber:segmentfault.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan