编译安装PHP7
编译安装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);}
以上内容是小编给大家分享的PHP7之Mongodb API使用详解,希望大家喜欢。
本文向大家介绍PHP7内核之Reference详解,包括了PHP7内核之Reference详解的使用技巧和注意事项,需要的朋友参考一下 问题 上一章说过引用(REFERENCE)在PHP5的时候是一个标志位, 而在PHP7以后我们把它变成了一种新的类型:IS_REFERNCE. 然而引用是一种很常见的应用, 所以这个变化带来了很多的变化, 也给我们在做PHP7开发的时候, 因为有的时候疏忽忘了处理
本文向大家介绍PHP7内核CGI与FastCGI详解,包括了PHP7内核CGI与FastCGI详解的使用技巧和注意事项,需要的朋友参考一下 CGI:是 Web Server 与 Web Application 之间数据交换的一种协议。 FastCGI:同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。 PHP-CGI:是 PHP (Web Application)对 Web Serv
本文向大家介绍PHP7生产环境队列Beanstalkd用法详解,包括了PHP7生产环境队列Beanstalkd用法详解的使用技巧和注意事项,需要的朋友参考一下 应用场景 为什么要用呢,有什么好处?这应该放在最开头说,一件东西你只有了解它是干什么的,适合干什么,才能更好的与自己的项目相结合,用到哪里学到哪里,学了不用等于不会,我们平时就应该多考虑一些这样的问题:自己做个什么项目功能能跟 xx 技术相
本文向大家介绍php7性能提升的原因详解,包括了php7性能提升的原因详解的使用技巧和注意事项,需要的朋友参考一下 为什么PHP7的性能可以提高这么多? 1. JIT 2. Zval的改变 3. 内部类型zend_string 4. PHP数组的变化(HashTable和Zend Array) 5. 函数调用机制(Function Calling Convention) 6. 通过宏定义和内联函数
本文向大家介绍pgsql之pg_stat_replication的使用详解,包括了pgsql之pg_stat_replication的使用详解的使用技巧和注意事项,需要的朋友参考一下 pg_stat_replication是一个视图,主要用于监控一个基于流的设置,建议您 注意系统上称作pg_stat_replication的视图。(注:当前版本为pg 10.0,10.0以下版本,字段名会有差异)此
本文向大家介绍python之wxPython菜单使用详解,包括了python之wxPython菜单使用详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python中wxPython菜单的使用方法,分享给大家供大家参考。具体如下: 先来看看下面这段代码: 运行效果如下图所示: 这里再来解释下几个API,官方文档如下: wxMenuItem* wxMenu::AppendSeparator