PHP7-Mongodb API使用

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

PHP7-Mongodb API使用

本篇文章主要给大家介绍PHP7:Mongodb API使用,希望对需要的朋友有所帮助!

编译安装PHP7 Mongdb扩展

#先安装一个依赖库yum -y install openldap-develwget 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使用的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:深入浅析Vue2中的Diff算法
下一篇:PHP8中的静态return type让代码更加可靠

发表评论

关闭广告
关闭广告