最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • PHP7:Mongodb API使用

    本篇文章主要给大家介绍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 MongoDBDriverManager("mongodb://127.0.0.1:27017");
     var_dump($manager);
     
    object(MongoDBDriverManager)#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 MongoDBDriverBulkWrite(['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 MongoDBDriverManager('mongodb://localhost:27017');
    $writeConcern = new MongoDBDriverWriteConcern(MongoDBDriverWriteConcern::MAJORITY, 1000);
    try {
        $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
    } catch (MongoDBDriverExceptionBulkWriteException $e) {
        $result = $e->getWriteResult();
        // Check if the write concern could not be fulfilled
        if ($writeConcernError = $result->getWriteConcernError()) {
            printf("%s (%d): %sn",
                $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 (MongoDBDriverExceptionException $e) {
        printf("Other error: %sn", $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 MongoDBDriverQuery($filter, $options);
    $manager = new MongoDBDriverManager("mongodb://localhost:27017");
    $readPreference = new MongoDBDriverReadPreference(MongoDBDriverReadPreference::RP_PRIMARY);
    $cursor = $manager->executeQuery("databaseName.collectionName", $query, $readPreference);
    foreach($cursor as $document) {
        var_dump($document);
    }

    相关推荐:《PHP教程


    以上就是【PHP7:Mongodb API使用】的详细内容。

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!

    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。

    如有侵权请发送邮件至1943759704@qq.com删除

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » PHP7:Mongodb API使用
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情