当前位置:首页 » 编程语言 » mongodbphp扩展

mongodbphp扩展

发布时间: 2022-09-24 14:07:36

‘壹’ mongodb已经安装成功,php扩展安装成功 但是用php 连接失败 错误提示如下

$class='MongoClient';

if(!class_exists($class)){

$class='Mongo';

}

$conn=new$class($hosts,$args);

‘贰’ mongodb当机后,重启mongodb,php就连接不上mongodb了,再重启Apache后,php就可以连接上mongodb,

你的mongo连接方式是什么?php扩展?还是类文件?如果是php扩展,那就是因为你的apache引入php采用的模块方式,只有重启apache才会出发Mshutdown行为。也就是重新加载php扩展,或许你的php扩展里的mongo链接是静态的。

‘叁’ 如何使用brew安装php的mongodb扩展

MongoDB 是一个基于分布式文件存储数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB的数据存储上,感觉有点想关系型数据库中的key=>value的数据格式。
和memcache或者redis差不多,mongodb也是分服务端和客户端的(相对)。用brew 来安装的话是非常方便的。

遇到类似的问题,你可以去后盾人平台看看的哦,里面的东西不错应该能帮你解决一些不明白的问题(❁´◡`❁)*

‘肆’ 为什么我用php查询mongodb数据库中的某个集合中的文档的条数,得到的结果和实际情况不一致

我也遇到过:

官方文档解释了这种现象的原因以及解决方法:
不准确的原因:

  • 操作的是分片的集合(前提);

  • shard分片正在做块迁移,导致有重复数据出现

  • 存在孤立文档(因为不正常关机、块迁移失败等原因导致)

    解决方法

  • 使用聚合aggregate的方式查询count数量,shell命令如下:


    db.collection.aggregate(
    [
    { $group: { _id: null, count: { $sum: 1 } } }
    ])

    也可以直接将原数据导出,将表删除后重新导入就可以了(我是这么处理的)

‘伍’ php7 mongodb 扩展 真的很差吗

MongoDB\Driver\Manager::executeBulkWrite
这玩意还配置了一个巨大的类库来配合调用:就是这个:https://github.com/mongodb/mongo-php-library ,纯粹是脱裤子放P,多此一举,本来原生扩展就已经巨长、巨难用,还配一个根本没有简化任何代码的库有什么意义?甚至于调用这个类库比原生的名字更长、更啰嗦,而且多了一层封装就多一次bug机会。
这个库文件总共63个,看看,如果你随便写个脚本访问一下mongodb,还得包含63个文件,我TM整个项目都没有63个文件好不好?这些个写惯了java的没事就老老实实写java,都跑来写php,php是要解析执行的,又不像jvm那么编译优化执行,搞那么多文件,不影响执行速度吗?真是狗屎,所以完全不推荐用这个狗屎库。
但是这个扩展最奇怪的就是文档超级简陋,根本不能获得任何有价值的信息,所以只能靠摸索来了。
下面是我用到的由MongoClient迁移到MongoDB\Driver的差异点。
MongoClient插入或更新是同样的代码:
(new MongoClient())->{$db}->{$collection}->save($arr);
// 这个$arr数组可以直接含有 "_id" 索引来指定 mongodb文档的_id值,就这么简单粗暴,这才是php啊!
MongoDB\Driver,插入和更新需要区分:
$mongo = new MongoDB\Driver\Manager();
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$data = $mongo->executeQuery('db.collection', new MongoDB\Driver\Query([]), new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED))->toArray();
if (empty($data[0])) { // 确定不存在,插入
$bulk->insert($arr);
} else { // 否者更新
$bulk->update([], array('$set' => $arr)); // $arr同样是刚才的数组
}
// 还没完,还要执行下一步:db.collection要替换成实际的数据库、集合名
$result = $mongo->executeBulkWrite('db.collection', $bulk, new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000));
// 返回插入或更新是否成功:
$ok = $result->getInsertedCount() || $result->getModifiedCount() ? 1 : 0;
// 真是够了!
查询一条记录:
MongoClient:
(new MongoClient())->{$db}->{$collection}->findOne(['_id' => $id]);
MongoDB\Driver:
$mongo = new MongoDB\Driver\Manager();
$result = $mongo->executeQuery('db.collection', new MongoDB\Driver\Query(['_id'=>$id], []), new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED));
// 返回的$result是一个对象,需要手动转换成数组。
查询数量时候,需要注意:
$mongo = new MongoDB\Driver\Manager();
$cursor = $mongo-executeCommand($db, new MongoDB\Driver\Command($arr), new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED));
// 这里$cursor是一个游标。需要注意$arr里的字段:
$arr = ['count'=>$collection, 'query'=>$query]; // 这里count必须排在前面,位置反了直接报异常。
查询结果集:
$mongo = new MongoDB\Driver\Manager();
$cursor = $mongo->executeQuery('db.collection', new MongoDB\Driver\Query($arr, $opts), new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED));
//注意,这里的 $arr和 $opts;
$arr = ['_id'=> ['$in'=> $ids] ]; // 根据id数组获取集合
$opts = ['limit'=> $limit, 'skip'=> $skip ]; // 不推荐
// 这里在传递$limit和$skip的时候,最好先转成整数,不然不生效:
$opts = ['limit'=> (int) $limit, 'skip'=> (int) $skip ]; // 推荐写法。
// 写到这里,让人怀疑是不是在用php了,怎么还需要这样的类型转换。字符串整数都不行!
基本就这样,推荐自己封装一个简单的MongoDB\Driver,而不是使用那个巨大无比的库、也不推荐直接用原生

‘陆’ php 7.1 怎么安装mongodb扩展

我们再网页上填写的表单信息都可以通过这两个方法将数据传递到服务器上,当我们使用GET方法是,所有的信息都会出现在URL地址中,并且使用GET方法最多只能传递1024个字符,所以如果在传输量小或者安全性不那么重要的情况下可以使用GET方法。楼主你看看我的方法可以吗,建议楼主去后盾人看看哦,还送两千元的后盾人会员卡

‘柒’ 你怎么查询这个mongo

很多Linux的朋友喜欢使用mongodb数据库,这款好用方便的数据库。不过一些朋友想要安装mongodb扩展时,却不知道怎么安装了,因此,现在我就教大家安装mongodb扩展的方法,有需要的朋友快来看看吧。 安装步骤: 环境 nginx/1/get/mongo-1.4.5.tgz 2. 编译安装 tar xvf mongo-1.4.5.tgz -C /usr/src cd /usr/src/mongo-1.4.5/ phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install 3. 配置php.ini,增加下面两行 [mongo] extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/mongo.so 4. 重新加载php-fpm, nginx pkill php-fpm /usr/local/php/sbin/php-fpm /usr/local/nginx/sbin/nginx -s reload 5. 验证是否安装成功 php -m grep mongo # 或者查看phpinfo页面 这就是Linux系统安装mongodb扩展的步骤了,想要安装mongodb扩展的用户,就按照上面的步骤进行安装吧。

‘捌’ php怎样测试是否安装成功mongdb扩展

1、在windows环境下,我们的软件安装在C盘,当然用户也可以安装在其他磁盘,和Java一样。小编以默认地址为例,首先是如何运行我们的数据库,打开cmd,输入cd C:\Program Files\MongoDB\Server\3.2\bin,回车;在输入C:\Program Files\MongoDB\Server\3.2\bin\mongod即可运行我们的数据库服务。
2、如果用户不想每次开机都运行,那么可以修改环境变量,这样一开机即可开始服务。
3、然后找到path变量,修改变量值,添加C:\Program Files\MongoDB\Server\3.2\bin,记住这里有许多变量值需要使用“;”隔开。

‘玖’ php7.3.4连接MongoDB2.2.2用哪个版本的扩展呢

  1. 首先进入pecl(PHP Extension Community Library)网站;

  2. 搜索mongodb扩展;

  3. 点击版本,查看支持的php版本

‘拾’ php 远程连接Mongodb问题

<?php //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如192.168.0.4:27017,如果端口是27017,端口可以省略 $m = new Mongo(); // 选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m->selectDB("comedy"); $db = $m->comedy; //选择comedy里面的collection集合,相当于RDBMS里面的表,也-可以使用 $collection = $db->collection; $db->selectCollection("collection"); //添加一个元素 $obj = array( "title" => "Calvin and Hobbes-".date('i:s'), "author" => "Bill Watterson" ); //将$obj 添加到$collection 集合中 $collection->insert($obj); //添加另一个元素 $obj = array( "title" => "XKCD-".date('i:s'), "online" => true ); $collection->insert($obj); //查询所有的记录 $cursor = $collection->find(); //遍历所有集合中的文档 foreach ($cursor as $obj) { echo $obj["title"] . "<br />\n"; } //删除所有数据 //$collection->remove(); //删除 name 为hm //$collection->remove(array('name'=>'hm')); //断开MongoDB连接 $m->close(); ?>
你可以去后盾人平台看看,里面的东西不错

热点内容
linux如何改配置文件 发布:2024-05-03 13:00:54 浏览:31
哪个安卓模拟器老爷机带得动 发布:2024-05-03 13:00:49 浏览:576
编程与实战 发布:2024-05-03 12:54:30 浏览:38
电脑开机有密码rpc服务器不可用 发布:2024-05-03 12:40:54 浏览:471
硬件的算法 发布:2024-05-03 12:34:28 浏览:388
支付密码为什么就六位 发布:2024-05-03 12:29:17 浏览:920
脚本找书 发布:2024-05-03 12:02:17 浏览:493
境外服务器租用怎么办 发布:2024-05-03 11:45:34 浏览:943
我的世界服务器怎么设置到重生点 发布:2024-05-03 11:33:04 浏览:752
mysqllinux安装包下载 发布:2024-05-03 11:32:07 浏览:934