• 技术文章 >后端开发 >PHP7

    PHP7:Mongodb API使用

    藏色散人藏色散人2019-03-28 14:03:05转载1509
    本篇文章主要给大家介绍PHP7:Mongodb API使用,希望对需要的朋友有所帮助!

    编译安装PHP7 Mongdb扩展

    #先安装一个依赖库
    yum -y install openldap-devel
    wget https://pecl.php.net/get/mongodb-1.1.1.tgz
    /home/server/php7/bin/phpize   #根据自己编译的PHP环境而定
    ./configure --with-php-config=/home/server/php7/bin/php-config 
    make && make install
    #如果成功,生成一个mongodb.so扩展在lib/php/extensions/no-debug-non-zts-20151012/

    修改php.ini配置

    extension=mongodb.so

    注:

    以前版本用的是mongo.so扩展,老的php-mongodb api

    在PHP7已经不支持了,至少目前不支持。

    最新支持PHP7的mongodb 编译后 仅支持新版API(mongodb > 2.6.X版本)

    参考资料

    GITHUB:

    https://github.com/mongodb/

    官网:

    http://www.mongodb.org/

    PHP官方:

    https://pecl.php.net/package/mongodb

    http://pecl.php.net/package/mongo [已废弃,目前只支持到PHP5.9999]

    API手册:

    http://docs.php.net/manual/en/set.mongodb.php

    Mongodb API 操作

    初始化Mongodb连接

    $manager =  new MongoDB\Driver\Manager("mongodb://127.0.0.1:27017");
     var_dump($manager);
     
    object(MongoDB\Driver\Manager)#1 (3) {
      ["request_id"]=>
      int(1714636915)
      ["uri"]=>
      string(25) "mongodb://localhost:27017"
      ["cluster"]=>
      array(13) {
        ["mode"]=>
        string(6) "direct"
        ["state"]=>
        string(4) "born"
        ["request_id"]=>
        int(0)
        ["sockettimeoutms"]=>
        int(300000)
        ["last_reconnect"]=>
        int(0)
        ["uri"]=>
        string(25) "mongodb://localhost:27017"
        ["requires_auth"]=>
        int(0)
        ["nodes"]=>
        array(...)
        ["max_bson_size"]=>
        int(16777216)
        ["max_msg_size"]=>
        int(50331648)
        ["sec_latency_ms"]=>
        int(15)
        ["peers"]=>
        array(0) {
        }
        ["replSet"]=>
        NULL
      }
    }

    CURL操作

    $bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
    $bulk->delete([]);
    $bulk->insert(['_id' => 1]);
    $bulk->insert(['_id' => 2]);
    $bulk->insert(['_id' => 3, 'hello' => 'world']);
    $bulk->update(['_id' => 3], ['$set' => ['hello' => 'earth']]);
    $bulk->insert(['_id' => 4, 'hello' => 'pluto']);
    $bulk->update(['_id' => 4], ['$set' => ['hello' => 'moon']]);
    $bulk->insert(['_id' => 3]);
    $bulk->insert(['_id' => 4]);
    $bulk->insert(['_id' => 5]);
    $manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
    $writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
    try {
        $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
    } catch (MongoDB\Driver\Exception\BulkWriteException $e) {
        $result = $e->getWriteResult();
        // Check if the write concern could not be fulfilled
        if ($writeConcernError = $result->getWriteConcernError()) {
            printf("%s (%d): %s\n",
                $writeConcernError->getMessage(),
                $writeConcernError->getCode(),
                var_export($writeConcernError->getInfo(), true)
            );
        }
        // Check if any write operations did not complete at all
        foreach ($result->getWriteErrors() as $writeError) {
            printf("Operation#%d: %s (%d)\n",
                $writeError->getIndex(),
                $writeError->getMessage(),
                $writeError->getCode()
            );
        }
    } catch (MongoDB\Driver\Exception\Exception $e) {
        printf("Other error: %s\n", $e->getMessage());
        exit;
    }
    printf("Inserted %d document(s)\n", $result->getInsertedCount());
    printf("Updated  %d document(s)\n", $result->getModifiedCount());

    查询

    $filter = array();
    $options = array(
        /* Only return the following fields in the matching documents */
        "projection" => array(
            "title" => 1,
            "article" => 1,
        ),
        "sort" => array(
            "views" => -1,
        ),
        "modifiers" => array(
            '$comment'   => "This is a query comment",
            '$maxTimeMS' => 100,
        ),
    );
    $query = new MongoDB\Driver\Query($filter, $options);
    $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
    $readPreference = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
    $cursor = $manager->executeQuery("databaseName.collectionName", $query, $readPreference);
    foreach($cursor as $document) {
        var_dump($document);
    }

    相关推荐:《PHP教程

    以上就是PHP7:Mongodb API使用的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:kancloud,如有侵犯,请联系admin@php.cn删除
    专题推荐:PHP7 Mongodb API
    上一篇:php5和php7的异常处理机制(thinkphp5 异常处理的分析) 下一篇:php7新特性的理解和比较
    大前端线上培训班

    相关文章推荐

    • 如何在php7.2/php7.3中安装mcrypt扩展?• mac下如何进行php7.1 memcache扩展的安装• 深入理解PHP7内核之zval• php5和php7的异常处理机制(thinkphp5 异常处理的分析)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网