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 相关文章推荐
实用函数10
Nov 08 PHP
PHP 上传文件大小限制
Jul 05 PHP
PHP学习 变量使用总结
Mar 24 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
linux下编译安装memcached服务
Aug 03 PHP
PHP如何实现Unicode和Utf-8编码相互转换
Jul 29 PHP
php简单判断文本编码的方法
Jul 30 PHP
提高php编程效率技巧
Aug 13 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
PHP对象相关知识总结
Apr 09 PHP
Laravel框架定时任务2种实现方式示例
Dec 08 PHP
PHP代码加密的方法总结
Mar 13 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限制ip地址范围的方法
2015/03/31 PHP
详解php的socket通信
2015/08/11 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
python实现上传下载文件功能
2020/11/19 Python
tensorflow 获取变量&打印权值的实例讲解
2018/06/14 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
python链表类中获取元素实例方法
2021/02/23 Python
2014年大学生自我评价
2014/01/19 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
2016年党建工作简报
2015/11/26 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript