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 相关文章推荐
在PHP的图形函数中显示汉字
Oct 09 PHP
用PHP和ACCESS写聊天室(九)
Oct 09 PHP
PHP MemCached高级缓存配置图文教程
Aug 05 PHP
PHP批量采集下载美女图片的实现代码
Jun 03 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
Laravel 4.2 中队列服务(queue)使用感受
Oct 30 PHP
微信接口生成带参数的二维码
Jul 31 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
laravel框架实现敏感词汇过滤功能示例
Feb 15 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 getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
python中uuid模块实例浅析
2020/12/29 Python
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
卫校毕业生自我鉴定
2013/10/31 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
师德师风个人总结
2015/02/06 职场文书
部门经理助理岗位职责
2015/04/13 职场文书
山楂树之恋观后感
2015/06/11 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书