暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MongoDB文档的创建及删除【php代码实例】

php中文网最新课程 2020-08-21
310

php中文网最新课程

每日17点准时技术干货分享

本文为php中文网认证作者:“齐天大圣”投稿,欢迎加入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文档的创建以及删除,使用起来非常的简单。

                        请点击下方:“阅读原文”,在线查看!

                        文章转载自php中文网最新课程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                        评论