Home>Article>Backend Development> Basic usage of mongodb in php7 (detailed code explanation)
Tip: PHP's mongodb extension has abandoned the original mongo extension starting from 5.6. The pecl download address ofPHP7is: https://pecl.php. net/package/mongodb, or choose the official development of mongodb: https://github.com/mongodb/mongo-php-library. This one on git supports the previous mongo writing method, but the mongodb on pecl does not support the previous writing method.
Let’s use the new API of PHP7 to summarize:
1: CURD
1: Link
root user; 123: Password; if there is no password, do not write
2: Query
['$gt'=>0]]; //查询条件 user_id大于0 $options = [ 'projection' => ['_id' => 0], //不输出_id字段 'sort' => ['user_id'=>-1] //根据user_id字段排序 1是升序,-1是降序 ]; $query = new MongoDB\Driver\Query($filter, $options); //查询请求 $list = $manager->executeQuery('location.box',$query); // 执行查询 location数据库下的box集合 foreach ($list as $document) { print_r($document); }Query For more conditions, please refer to Section 2 for basic mongodb commands. Query
3: Add
flase]);//如果要改成无序操作则加flase,并行执行 $bulk->insert(['user_id' => 2, 'real_name'=>'中国',]); $bulk->insert(['user_id' => 3, 'real_name'=>'中国人',]); $manager->executeBulkWrite('location.box', $bulk); //执行写入 location数据库下的box集合4: Modify
flase]);//如果要改成无序操作则加flase,并行执行 $bulk->update( ['user_id' => 2], ['$set'=>['real_name'=>'中国国'] ]); //$set相当于mysql的 set,这里和mysql有两个不同的地方, //1:字段不存在会添加一个字段; //2:mongodb默认如果条件不成立,新增加数据,相当于insert //如果条件不存在不新增加,可以通过设置upsert //db.collectionName.update(query, obj, upsert, multi); $bulk->update( ['user_id' => 5], [ '$set'=>['fff'=>'中国国'] ], ['multi' => true, 'upsert' => false] //multi为true,则满足条件的全部修改,默认为true,如果改为false,则只修改满足条件的第一条 //upsert为 treu:表示不存在就新增 ); $manager->executeBulkWrite('location.box', $bulk); //执行写入 location数据库下的box集合ordered Settings
1: The default is true. Insert and update data are executed in order. If an error occurs, the subsequent execution is stopped. Mongo officially calls it serial.
2: If it is false, mongo inserts updated data concurrently. If an error occurs in the middle, it will not affect subsequent operations. Mongo officially calls it parallel5: Delete
flase]);//如果要改成无序操作则加flase,并行执行 $bulk->delete(['user_id'=>5]);//删除user_id为5的字段 $manager->executeBulkWrite('location.box', $bulk); //执行写入 location数据库下的box集合delete can also set different deletion methods through limit
$bulk->delete(['user_id' => 1], ['limit' => 1]); // limit 为 1 时,删除第一条匹配数据 $bulk->delete(['user_id' => 2], ['limit' => 0]); // limit 为 0 时,删除所有匹配数据,默认删除所有6: Capture exception
MongoDB\Driver\Exception\AuthenticationException MongoDB\Driver\Exception\BulkWriteException MongoDB\Driver\Exception\ConnectionException MongoDB\Driver\Exception\ConnectionTimeoutException MongoDB\Driver\Exception\Exception //所有驱动程序异常的公共接口 MongoDB\Driver\Exception\ExecutionTimeoutException MongoDB\Driver\Exception\InvalidArgumentException MongoDB\Driver\Exception\LogicException MongoDB\Driver\Exception\RuntimeException MongoDB\Driver\Exception\SSLConnectionException MongoDB\Driver\Exception\UnexpectedValueException MongoDB\Driver\Exception\WriteExceptionInstructions: http://php.net/manual/zh /class.mongodb-driver-exception-authenticationexception.php
The above is the detailed content of Basic usage of mongodb in php7 (detailed code explanation). For more information, please follow other related articles on the PHP Chinese website!