MongoDB文档的创建和删除(php代码
注意,本文所有的代码实例均以php代码做演示。
安装MongoDB扩展
扩展包安装地址:https://pecl.php.net/package/mongodb
下载最稳定的版本,然后把扩展包上传到服务器上。
# 解压
tar zxf mongodb-1.8.0.tgz
cd mongodb-1.8.0
# 安装
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make & make install
# 修改php配置文件php.ini
# 加入一行extension=mongodb
# 测试
php -m | grep mongodb
mongodb扩展教程:https://docs.mongodb.com/php-library/current/reference/
使用phplib
composer require mongodb/mongodb
插入文档
和Mysql类似,MongoDB插入文档也能插入单条或多条。下面看插入单条:
$mongo = new MongoDB\Client();
$collect = $mongo->users->users;
$collect->insertOne(['name'=> 'james', 'age' => 35]);
如果没有声明_id字段,该操作会自动为新文档创建一个_id字段。当然,我们也可以手动指定_id的值
$collect->insertOne(['_id' => 1,'name'=> 'james', 'age' => 35]);
该函数执行成功返回 MongoDB\InsertOneResult object,失败则会抛出异常。
接下来看如何插入多个文档:
$collect->insertMany([
[ 'name'=>'paul', 'age' => 34],
[ 'name'=>'durant', 'age' => 31],
[ 'name'=> 'curry', 'age' => 31]
]);
需要注意的是,在批量插入的时候,如果其中有一个文档插入失败,后面的就不会继续插入,但前面的会插入。
# 第一条会插入成功,第二条时插入失败,后面的也不会继续插入
$collect->insertMany([
[ 'name'=>'paul', 'age' => 34],
['_id'=> 1, 'name'=> 'jeans', 'age' => 1], // _id=1已存在
[ 'name'=>'durant', 'age' => 31],
[ 'name'=> 'curry', 'age' => 31]
]);
如想忽略错误,继承插入,则需给该方法添加个选项ordered,设置为false.
$collect->insertMany([
[ 'name'=>'jay', 'age' => 34],
['_id'=> 1, 'name'=> 'jeans', 'age' => 1], // _id=1已存在
[ 'name'=>'xtf', 'age' => 31],
],['ordered' => false]);
注意:上述遇到错误能够插入成功,但是该语句会抛出异常。如想忽略错误,继续程序的执行,则需要去捕获异常。
删除文档
注意:删除是危险操作,不能恢复,不能撤回。
通过查询语句删除文档:
/**
* 目前有4个name为james的文档
*/
# 删除一个文档
$ret = $collect->deleteOne(['name'=>'james']);
printf($ret->getDeletedCount()); // 1
# 删除满足条件的所有文档
$ret = $collect->deleteMany(['name'=>'james']);
printf($ret->getDeletedCount());
删除所有文档(其实是整个集合都被删除了):
$collect->drop();
MongoDB文档的创建以及删除,使用起来非常的简单。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanfegjb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01