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转成EXE文件
Oct 09 PHP
将RTF格式的文件转成HTML并在网页中显示的代码
Oct 09 PHP
几个学习PHP的网址
Nov 25 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
PHP 函数语法介绍一
Jun 14 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
php教程之魔术方法的使用示例(php魔术函数)
Feb 12 PHP
Codeigniter实现智能裁剪图片的方法
Jun 12 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
php fread读取文件注意事项
Sep 24 PHP
php die()与exit()的区别实例详解
Dec 03 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来检测proxy
2006/10/09 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
php 文件缓存函数
2011/10/08 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
php计算title标题相似比的方法
2015/07/29 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
python实现自动发送邮件
2018/06/20 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
python函数的作用域及关键字详解
2019/08/20 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
python与js主要区别点总结
2020/09/13 Python
大班上学期个人总结
2015/02/13 职场文书
血轮眼轮回眼特效 html+css
2021/03/31 HTML / CSS
SQL Server使用导出向导功能
2022/04/08 SQL Server