PHP程序员小白到大牛集训(12期免息)
作者信息
视频教程分类
推荐视频教程
  • php程序员小白到大牛三个月集训php程序员小白到大牛三个月集训
  • Laravel 9 学习正当时—保姆级教程,想学不会都难!Laravel 9 学习正当时—保姆级教程,想学不会都难!
  • 千万级数据并发解决方案(理论+实战)千万级数据并发解决方案(理论+实战)
  • Laravel基础与实战(模块化)Laravel基础与实战(模块化)
  • UNI-APP开发(仿饿了么)UNI-APP开发(仿饿了么)
  • 首页 >数据库 >MongoDB > 正文

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

    原创2020-08-21 13:25:421073 关注公众号:每天精选资源文章推送
    注意,本文所有的代码实例均以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中文网其它相关文章!

    20期PHP线上班

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

  • 相关标签:MongoDB
  • 相关文章

    相关视频


    专题推荐