MongDB PHP7

---恢复内容开始---

PHP7 Mongdb 扩展安装

我们使用 pecl 命令来安装:

$ /usr/local/php7/bin/pecl install mongodb

执行成功后,会输出以下结果:

……
Build process completed successfully
Installing ‘/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/mongodb.so‘
install ok: channel://pecl.php.net/mongodb-1.1.7
configuration option "php_ini" is not set to php.ini location
You should add "extension=mongodb.so" to php.ini

接下来我们打开 php.ini 文件,添加 extension=mongodb.so 配置。

可以直接执行以下命令来添加。

$ echo "extension=mongodb.so" >> `/usr/local/php7/bin/php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

注意:以上执行的命令中 php7 的安装目录为 /usr/local/php7/,如果你安装在其他目录,需要相应修改 pecl 与 php 命令的路径。


Mongodb 使用

PHP7 连接 MongoDB 语法如下:

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

插入数据

将 name 为"W3Cschool教程" 的数据插入到 test 数据库的 w3cschool 集合中。

<?php
$bulk = new MongoDB\Driver\BulkWrite;
$document = [‘_id‘ => new MongoDB\BSON\ObjectID, ‘name‘ => ‘W3Cschool教程‘];

$_id= $bulk->insert($document);

var_dump($_id);

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite(‘test.w3cschool‘, $bulk, $writeConcern);
?>

读取数据

这里我们将三个网址数据插入到 test 数据库的 sites 集合,并读取迭代出来:

<?php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");  

// 插入数据
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert([‘x‘ => 1, ‘name‘=>‘W3Cschool教程‘, ‘url‘ => ‘http://www.w3cschool.cn‘]);
$bulk->insert([‘x‘ => 2, ‘name‘=>‘Google‘, ‘url‘ => ‘http://www.google.com‘]);
$bulk->insert([‘x‘ => 3, ‘name‘=>‘taobao‘, ‘url‘ => ‘http://www.taobao.com‘]);
$manager->executeBulkWrite(‘test.sites‘, $bulk);

$filter = [‘x‘ => [‘$gt‘ => 1]];
$options = [
    ‘projection‘ => [‘_id‘ => 0],
    ‘sort‘ => [‘x‘ => -1],
];

// 查询数据
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery(‘test.sites‘, $query);

foreach ($cursor as $document) {
    print_r($document);
}
?>

输出结果为:

stdClass Object
(
    [x] => 3
    [name] => taobao
    [url] => http://www.taobao.com
)
stdClass Object
(
    [x] => 2
    [name] => Google
    [url] => http://www.google.com
)

更新数据

接下来我们将更新 test 数据库 sites 集合中 x 为 2 的数据:

<?php
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(
    [‘x‘ => 2],
    [‘$set‘ => [‘name‘ => ‘w3cschool在线工具‘, ‘url‘ => ‘123.w3cschool.cn/webtools‘]],
    [‘multi‘ => false, ‘upsert‘ => false]
);

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite(‘test.sites‘, $bulk, $writeConcern);
?>

接下来我们使用 "db.sites.find()" 命令查看数据的变化,x 为 2 的数据已经变成了w3cschool在线工具:

删除数据

以下实例删除了 x 为 1 和 x 为 2的数据,注意 limit 参数的区别:

<?php
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->delete([‘x‘ => 1], [‘limit‘ => 1]);   // limit 为 1 时,删除第一条匹配数据
$bulk->delete([‘x‘ => 2], [‘limit‘ => 0]);   // limit 为 0 时,删除所有匹配数据

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite(‘test.sites‘, $bulk, $writeConcern);
?>

---恢复内容结束---

原文地址:https://www.cnblogs.com/navysummer/p/8456585.html

时间: 2024-10-28 08:46:36

MongDB PHP7的相关文章

Windows下尝试PHP7提示丢失VCRUNTIME140.DLL的问题解决

前天PHP7.0.0正式版发布了,有一些比较好的改进,官方也说速度比php5.6快了两倍,性能上有了很大提升,并且也发布了从php5.x向php7迁移的问题,所以今后php网站迁移后能够大幅度的提升网站性能,所以为了尝鲜我也去php官网下载了7.0的版本,通过命令行进行独立的测试,下载zip包后解压出来,下载后进入目录,将php.ini-development改为php.ini其余的参数暂时不用修改,然后在当前目录下新建test.php,输入简单的代码: 1 <?php 2 echo "H

php7微信支付回调失败

升级完PHP7 发现微信支付回调失败.原来是 $GLOBALS['HTTP_RAW_POST_DATA'];没有定义的问题.php7 移除了这个全局变量. 修改如下: //获取通知的数据 $xml = $GLOBALS['HTTP_RAW_POST_DATA'];//这里在php7下不能获取数据,使用 php://input 代替 if(!$xml){ $xml = file_get_contents("php://input"); }

最详细win7下手动搭建PHP环境:apache2.4.23+php7.0.11

?资源下载(apache24,php7,phpStorm9) ?修改apache24配置文件 ?安装和启动Apache服务 ?修改php7.0.11配置文件 配置前说明:电脑需要有vc运行库环境,否则会提示计算机中丢失 VCRUNTIME140.dll(因为版本需要VC14编译,为避免安装失败,可先安装vc_redist.x86.exe或者vc_redist.x64.exe),如果电脑有装比较高版本的.netFramework的话,就不会有这个问题 地址:64位版下载地址 , 32位版下载地址

win10+PHP7

在D盘自定义新建文件夹ApacheServer 再在ApacheServer文件夹下分别建立php,Apache,mysql,web四个文件夹分别用来存放 php,apache,mysql,项目文件 先安装对应的 vc_redist.x64 这里是VC14_64 Apache安装 将httpd-2.4.20-win64-VC14解压缩到D:/ApacheServer/Apache目录下 修改配置文件D:/ApacheServer/Apache/conf/httpd.conf ServerRoot

解压即用,跨Linux发行版PHP7打包

适用环境: 64位Linux 下载地址(18MB): http://pan.baidu.com/s/1ntsrU8x md5sum php-7.0.0-dev-20150502.tar.xz 5a4897aedc5ccf02da1f0340ac6013cb PHP版本是7.0.0开发版,2015年5月2日从Github下载的代码. https://github.com/php/php-src/archive/master.zip 创建用户: sudo groupadd -r png sudo u

【问底】徐汉彬:PHP7和HHVM的性能之争

摘要:近日,PHP7和HHVM的性能之争成为了一个讨论热点,但毫无疑问,它们都在提升PHP执行性能方面取得了突破性的进展.本期<问底>,徐汉彬将为大家科普和介绍它们的性能之争. [导读]徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设.最近,PHP7和HHVM的性能之争成为了一个讨论热点,它们都在提升PHP执行性能方面取得了突破性的进展.这篇文章,参考了两个社区的技术新进展,为大家科普和介绍它们的性能之争.

wamp集成环境php多版本搭建(php5.5,php5.6,php7.0.6)

首先需要搭建的版本可以在php官方(http://windows.php.net/download)下载对应的版本,X86对应的是32位操作系统,X64对应的是64位操作系统. 1:下载之后解压,把解压的压缩包放在wamp安装目录bin目录下的php文件夹下,同时注意把文件夹名称改成符合wamp规范的名称,比如解压过后名称是php-5.6.19-Win32-VC11-x64要改成php5.6.19记住不要有横杆. 2:然后打开wamp自带的php5.5.12版本文件夹,发现比普通官方文件多了两个

PHP7 opcache缓存清理问题

PHP7 opcache缓存清理问题 背景 OPcache通过opcode的缓存和优化,提供更快的PHP执行过程.业务在php7环境运营时,为了提升请求的性能,在PHP7环境中配置OPcache扩展.业务在更新代码后,访问业务系统时提示无法找到对应的文件或请求的内容还是更新前的旧内容,webserver重启以后,请求访问到的文件就都是最新的了,问题就貌似解决了. 问题分析 根据现象分析,代码更新后请求找不到新增的文件,尤其是还在请求已有文件更新前的内容,那么可能跟缓存有关系,考虑到跟业务代码逻辑

LAMP环境搭建(centos6.9+apache2.4+mysql5.7+php7.1)

安装前准备 CentOS 6.9 64位 最小化安装 yum install -y make gcc gcc-c++ perl zlib-devel libaio libpng libpng-devel libjpeg-devel pcre-develyum install -y  libXpm-devel openssl openssl-devel libxml2-devel bzip2-devel.x86_64 libjpeg-turbo-develyum install -y  freet