MongoDB文档的创建及删除(php代码实例)

齐天大圣
发布: 2020-08-21 13:25:42
原创
2266 人浏览过

注意,本文所有的代码实例均以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文档的创建以及删除,使用起来非常的简单。

推荐:《MongoDB视频教程

以上是MongoDB文档的创建及删除(php代码实例)的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!