• 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
    )
  • 相关阅读:
    函数地址经典基础C++笔试题(附答案)
    类型事务修改 mysql 表类型 实际测试可执行
    ARM7,ARM9有哪些区别
    I2C,SPI,UART总线的区别详解
    I²C
    AnyWhere——面向设备的编程模式
    Linux设备驱动编程之内存与I/O操作
    http://www.ibm.com/developerworks/cn/linux/lcnspidermonkey/index.html
    PCI Express总线接口板的设计与实现
    armfans文章搜集
  • 原文地址:https://www.cnblogs.com/mmady/p/8778447.html
Copyright © 2020-2023  润新知