PHP7之Mongodb API使用详解


Posted in PHP onDecember 26, 2015

编译安装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使用详解,希望大家喜欢。

PHP 相关文章推荐
最省空间的计数器
Oct 09 PHP
动易数据转成dedecms的php程序
Apr 07 PHP
php array的学习笔记
May 16 PHP
php缩小png图片不损失透明色的解决方法
Dec 25 PHP
PHP命令行脚本接收传入参数的三种方式
Aug 20 PHP
php简单获取文件扩展名的方法
Mar 24 PHP
PHP实现在线阅读PDF文件的方法
Jun 17 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
Sep 22 PHP
PHP微信红包生成代码分享
Oct 06 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
laravel框架 api自定义全局异常处理方法
Oct 11 PHP
thinkPHP下的widget扩展用法实例分析
Dec 26 #PHP
thinkPHP下ueditor的使用方法详解
Dec 26 #PHP
thinkPHP中分页用法实例分析
Dec 26 #PHP
thinkPHP中验证码的简单使用方法
Dec 26 #PHP
分享50个提高PHP执行效率的技巧
Dec 26 #PHP
PHP获取二维数组中某一列的值集合
Dec 25 #PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
Dec 25 #PHP
You might like
用PHP产生动态的影像图
2006/10/09 PHP
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
大学生个人推荐信范文
2013/11/25 职场文书
电大本科自我鉴定
2014/02/05 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
英语故事演讲稿
2014/04/29 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书
工人先进事迹材料
2014/12/26 职场文书
Java完整实现记事本代码
2022/06/16 Java/Android