搜索
首页
笔记
案例
关于
课程列表
MongoDB
MongoDB介绍
MongoDB的安装及卸载
数据库、集合、文档的概念
数据类型
MongoDB shell
安装MongoDB的php扩展
创建、删除文档
更新文档
写入安全机制
课程导航
计算机基础知识
C
Linux
linux常用软件
计算机网络
程序员修养
设计模式
工具
Git
composer
vim
IntelliJ IDEA
wireshark
laravel
Spring
SpringMVC
Maven
数据库
MySQL
Redis
MongoDB
JDBC
Mybatis
MyBatis-Plus
服务端编程
PHP
Java
shell script
JavaWeb
HTML / CSS
HTML
CSS
HTML5
CSS3
BOOTSTRAP
JavaScript
JavaScript
JQuery
layui
安装MongoDB的php扩展
更新文档
创建、删除文档
注意,本文所有的代码实例均以php代码做演示。 ## 插入文档 和Mysql类似,MongoDB插入文档也能插入单条或多条。下面看插入单条: ```php $mongo = new MongoDB\Client(); $collect = $mongo->users->users; $collect->insertOne(['name'=> 'james', 'age' => 35]); ``` 如果没有声明\_id字段,该操作会自动为新文档创建一个_id字段。当然,我们也可以手动指定\_id的值 ```php $collect->insertOne(['_id' => 1,'name'=> 'james', 'age' => 35]); ``` 该函数执行成功返回 MongoDB\InsertOneResult object,失败则会抛出异常。 接下来看如何插入多个文档: ```php $collect->insertMany([ [ 'name'=>'paul', 'age' => 34], [ 'name'=>'durant', 'age' => 31], [ 'name'=> 'curry', 'age' => 31] ]); ``` 需要注意的是,在批量插入的时候,如果其中有一个文档插入失败,后面的就不会继续插入,但前面的会插入。 ```php # 第一条会插入成功,第二条时插入失败,后面的也不会继续插入 $collect->insertMany([ [ 'name'=>'paul', 'age' => 34], ['_id'=> 1, 'name'=> 'jeans', 'age' => 1], // _id=1已存在 [ 'name'=>'durant', 'age' => 31], [ 'name'=> 'curry', 'age' => 31] ]); ``` 如想忽略错误,继承插入,则需给该方法添加个选项ordered,设置为false. ```php # 虽然遇到错误能插入成功,但会抛出异常 $collect->insertMany([ [ 'name'=>'jay', 'age' => 34], ['_id'=> 1, 'name'=> 'jeans', 'age' => 1], // _id=1已存在 [ 'name'=>'xtf', 'age' => 31], ],['ordered' => false]); ``` ## 删除文档 注意:删除是危险操作,不能恢复,不能撤回。 通过查询语句删除文档: ```php /** * 目前有4个name为james的文档 */ # 删除一个文档 $ret = $collect->deleteOne(['name'=>'james']); printf($ret->getDeletedCount()); // 1 # 删除满足条件的所有文档 $ret = $collect->deleteMany(['name'=>'james']); printf($ret->getDeletedCount()); ``` 删除所有文档(其实是整个集合都被删除了): ```php $collect->drop(); ```
安装MongoDB的php扩展
更新文档
文章目录