zoukankan      html  css  js  c++  java
  • PHP7 MongDB 安装与使用

    我们使用 pecl 命令来安装:

     /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 的安装目录为 /usr/local/php7/,如果你安装在其他目录,需要相应修改 pecl 与 php 命令的路径。

    Mongodb 使用

    PHP7 连接 MongoDB 语法如下:

    $manager = new MongoDBDriverManager("mongodb://localhost:27017");

    插入数据

    将 name 为"baidu" 的数据插入到 test 数据库的 runoob 集合中。

    <?php
    $bulk = new MongoDBDriverBulkWrite;
    $document = ['_id' => new MongoDBBSONObjectID, 'name' => 'baidu'];
    
    $_id= $bulk->insert($document);
    
    var_dump($_id);
    
    $manager = new MongoDBDriverManager("mongodb://localhost:27017");  
    $writeConcern = new MongoDBDriverWriteConcern(MongoDBDriverWriteConcern::MAJORITY, 1000);
    $result = $manager->executeBulkWrite('test.runoob', $bulk, $writeConcern);
    ?>

    读取数据

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

    <?php
    $manager = new MongoDBDriverManager("mongodb://localhost:27017");  
    
    // 插入数据
    $bulk = new MongoDBDriverBulkWrite;
    $bulk->insert(['x' => 1, 'name'=>'Baidu', 'url' => 'http://www.baidu.com']);
    $bulk->insert(['x' => 2, 'name'=>'Google', 'url' => 'http://www.google.com']);
    $bulk->insert(['x' => 3, 'name'=>'taobao', 'url' => 'http://www.taobao.com']);
    $manager->executeBulkWrite('test.sites', $bulk);
    
    $filter = ['x' => ['$gt' => 1]];
    $options = [
        'projection' => ['_id' => 0],
        'sort' => ['x' => -1],
    ];
    
    // 查询数据
    $query = new MongoDBDriverQuery($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.com
    )
    stdClass Object
    (
        [x] => 2
        [name] => Google
        [url] => http://www.google.com
    )
  • 相关阅读:
    八皇后之回溯算法
    手撕堆排序 优先级队列的实现方式
    扩展1000!(n!)的尾数零的个数
    #12. 整数转罗马数字 穷举法
    #11 盛最多水的容器
    Sql Server 复制数据库
    常见dos命令行
    JSP页面中,EL表达式获取根路径。
    maven springTest结合junit单元测试
    【Java异常】Exception in thread“main” java util ConcurrentModificationException的解决方案
  • 原文地址:https://www.cnblogs.com/mmady/p/8778447.html
Copyright © 2011-2022 走看看