第30章 PHP7 MongDB 安装与使用教程

PHP7 MongDB install 与使用

本文教程只适合在 PHP7 的环境,如果陛下您是 PHP5 环境,陛下您可以参阅 PHP MongDB install 与使用。

PHP7 Mongdb 扩展install

咱们使用 pecl 命令来install :


    $ /usr/local/php7/bin/pecl install mongodb

执行成功后,会输出以下结果请在输出结果查看


    ……
    Build process completed successfully
    Installing '/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/mongodb.so'
    install ok: channel://pecl.php.net/mongodb-1.1.7
    configuration option "php_ini" is not set to php.ini location
    You should add "extension=mongodb.so" to php.ini

接下来咱们打开 php.ini 文件,添加 extension=mongodb.so 配置。

可以直接执行以下命令来添加。


    $ echo "extension=mongodb.so" >> `/usr/local/php7/bin/php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

**注意:**以上执行的命令中 php7 的install 目录为 /usr/local/php7/,如果陛下您install 在其他目录,需要相应修改 pecl 与 php 命令的路径。


Mongodb 使用

PHP7 连接 MongoDB 语法如下:


    $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

插入数据

将 name 为"liulianjiangcsdn教程" 的数据插入到 test database的 liulianjiangcsdn 集合中。


    <?php
    $bulk = new MongoDB\Driver\BulkWrite;
    $document = ['_id' => new MongoDB\BSON\ObjectID, 'name' => 'liulianjiangcsdn教程'];
    
    $_id= $bulk->insert($document);
    
    var_dump($_id);
    
    $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");  
    $writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
    $result = $manager->executeBulkWrite('test.liulianjiangcsdn', $bulk, $writeConcern);
    ?>

读取数据

这里咱们将三个网址数据插入到 test database的 sites 集合,并读取迭代出来:


    <?php
    $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");  
    
    // 插入数据
    $bulk = new MongoDB\Driver\BulkWrite;
    $bulk->insert(['x' => 1, 'name'=>'liulianjiangcsdn教程', 'url' => 'http://blog.csdn.net/qq441540598']);
    $bulk->insert(['x' => 2, 'name'=>'Google', 'url' => 'http://www.google.net']);
    $bulk->insert(['x' => 3, 'name'=>'taobao', 'url' => 'http://www.taobao.net']);
    $manager->executeBulkWrite('test.sites', $bulk);
    
    $filter = ['x' => ['$gt' => 1]];
    $options = [
        'projection' => ['_id' => 0],
        'sort' => ['x' => -1],
    ];
    
    // 查询数据
    $query = new MongoDB\Driver\Query($filter, $options);
    $cursor = $manager->executeQuery('test.sites', $query);
    
    foreach ($cursor as $document) {
        print_r($document);
    }
    ?>

输出结果请在输出结果查看


    stdClass Object
    (
        [x] => 3
        [name] => taobao
        [url] => http://www.taobao.net
    )
    stdClass Object
    (
        [x] => 2
        [name] => Google
        [url] => http://www.google.net
    )

更新数据

接下来咱们将更新 test database sites 集合中 x 为 2 的数据:


    <?php
    $bulk = new MongoDB\Driver\BulkWrite;
    $bulk->update(
        ['x' => 2],
        ['$set' => ['name' => 'liulianjiangcsdntool ', 'url' => 'tool.blog.csdn.net/qq441540598']],
        ['multi' => false, 'upsert' => false]
    );
    
    $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");  
    $writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
    $result = $manager->executeBulkWrite('test.sites', $bulk, $writeConcern);
    ?>

接下来咱们使用 “db.sites.find()” 命令查看数据的变化,x 为 2 的数据已经变成了liulianjiangcsdntool :

删除数据

以下实例删除了 x 为 1 和 x 为 2的数据,注意 limit 参数的区别:


    <?php
    $bulk = new MongoDB\Driver\BulkWrite;
    $bulk->delete(['x' => 1], ['limit' => 1]);   // limit 为 1 时,删除第一条匹配数据
    $bulk->delete(['x' => 2], ['limit' => 0]);   // limit 为 0 时,删除所有匹配数据
    
    $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");  
    $writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
    $result = $manager->executeBulkWrite('test.sites', $bulk, $writeConcern);
    ?>

更多使用方法请参考:http://php.net/manual/en/book.mongodb.php

本专栏所有文章

第1章 MongoDB 教程第2章 NoSQL 简介教程
第3章 MongoDB 简介教程第4章 Windows MongoDB教程
第5章 Linux MongoDB教程第6章 OSX MongoDB教程
第7章 MongoDB 概念解析教程第8章 MongoDB 连接教程
第9章 MongoDB 创建数据库教程第10章 MongoDB 删除数据库教程
第11章 MongoDB 创建集合教程第12章 MongoDB 删除集合教程
第13章 MongoDB 插入文档教程第14章 MongoDB 更新文档教程
第15章 MongoDB 删除文档教程第16章 MongoDB 查询文档教程
第17章 MongoDB 条件操作符教程第18章 MongoDB $type 操作符教程
第19章 MongoDB Limit与Skip方法教程第20章 MongoDB 排序教程
第21章 MongoDB 索引教程第22章 MongoDB 聚合教程
第23章 MongoDB 复制(副本集)教程第24章 MongoDB 分片教程
第25章 MongoDB 备份与恢复教程第26章 MongoDB 监控教程
第27章 MongoDB Java教程第28章 MongoDB PHP 扩展教程
第29章 MongoDB PHP教程第30章 MongoDB PHP7教程
第31章 Node.js MongoDB教程第32章 MongoDB 关系教程
第33章 MongoDB 数据库引用教程第34章 MongoDB 覆盖索引查询教程
第35章 MongoDB 查询分析教程第36章 MongoDB 原子操作教程
第37章 MongoDB 高级索引教程第38章 MongoDB 索引限制教程
第39章 MongoDB ObjectId教程第40章 MongoDB Map Reduce教程
第41章 MongoDB 全文检索教程第42章 MongoDB 正则表达式教程
第43章 MongoDB 管理工具教程第44章 MongoDB GridFS教程
第45章 MongoDB 固定集合教程第46章 MongoDB 自动增长教程

寄语

本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598

  • 他说要是回到当初,他会爱我,可是谁都知道,没有人可以让时光倒流,所以他永远不会爱上我。
  • 从来就没有救世主,人的命运操之在我,气可鼓而不可泄。
  • 人到中年才知道:孤独、痛苦、失败是人生不可缺少的调味品。
  • 不管做了多少,终究最后都是以成功和失败来论的,所以不要在意这个过程当中自己遭遇了多少的困难和痛苦,只要在最后能够成功就行了。
  • 太阳并不负责拒绝光线的角落。朋友,生活到大自然中去吧1人生就是一篇议论文:论点是理想,论据是生活,论证是工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴莲酱csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值