Tip: PHP's mongodb extension has abandoned the original mongo extension starting from 5.6. The pecl download address of PHP7 is: 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
<?php //链接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:123@10.10.10.104:27017');
root user; 123: Password; if there is no password, do not write
2: Query
<?php //链接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); //查询 $filter = ['user_id'=>['$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
<?php //链接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); $bulk = new MongoDB\Driver\BulkWrite; //默认是有序的,串行执行 //$bulk = new MongoDB\Driver\BulkWrite(['ordered' => 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
<?php //链接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); $bulk = new MongoDB\Driver\BulkWrite; //默认是有序的,串行执行 //$bulk = new MongoDB\Driver\BulkWrite(['ordered' => 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 parallel
5: Delete
<?php //链接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); $bulk = new MongoDB\Driver\BulkWrite; //默认是有序的,串行执行 //$bulk = new MongoDB\Driver\BulkWrite(['ordered' => 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\WriteException
Instructions: 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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

WebStorm Mac version
Useful JavaScript development tools

Atom editor mac version download
The most popular open source editor

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software