关于 PHP 启动 MongoDb 找不到指定模块问题
itomcoil 2025-06-03 22:35 4 浏览
前言:
最近有一个小 demo,需要通过 PHP 将用户行为记录储存到 MongoDB,再用 Spark 做协同过滤。由于以前处理跨语言交互是通过消息中间件,这次本地使用 MongoDB 却弄出了几个问题。首先是本地安装了扩展,启动时报找不到模块错误,再个时 PHP 进行的实例化使用时报 MongoClient 和一些函数不存在。最后也推荐一些方便快捷的 MongoDB 图形化工具。
环境:
1. Windows10
2. PHP7.4
3. MongoDB 4.4.14 Server
5. php_mongodb-1.12.1-7.4-nts-vc15-x64
安装:
1. MongoDB Server 下载
2. php_mongodb-1.12.1-7.4-nts-vc15-x64 下载
3. navicat for mongodb 下载
问题:
1. 找不到指定模块 php_mongodb
PHP 中添加扩展 php_mongodb 不正确,除了需要 php_mongodb.dll 还要 php_mongodb.pdb 复制到 php 安装目录下的 ext 中
最后在 php.ini 添加 extension=php_mongodb.dll,重启完后查看 php -m 或者浏览器中查看 phpinfo ()
2. MongoClient 类不存在
原因是这个是旧版本 php_mongo 扩展提供的类,新版本是通过后面演示代码的方式,如果不知道扩展提供的新方法或函数可以通过一下方式查看。
(1). get_declared_classes () 查看扩展里预设的函数
工具使用:
1. MongoDB Server
(1). 启动服务
2. Navicat for MongoDB
(1). 连接服务
代码演示:
1. 查询
public function testMongoDbQuery()
{
$manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");
$filter = ['x' => ['$gt' => 0]];
$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);
}
}
2. 插入
public function testMongoDbInsert()
{
$manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");
$bulk = new \MongoDB\Driver\BulkWrite;
// mongoDb默认存在一个自增长的字符串ID
$document = [
'_id' => new \MongoDB\BSON\ObjectID,
'videoId' => mt_rand(1, 99999),
'userId' => mt_rand(1, 9999),
'score' => floatval(mt_rand(5,100)),
'date' => time()
];
$bulk->insert($document);
$res = $manager->executeBulkWrite('tanhua.recommend_video_20191001', $bulk);
return $res;
}
3. 批量插入
public function testMongoDbBulk()
{
//return get_declared_classes();
$manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");
$bulk = new \MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1, 'name'=>'tenent', 'url' => 'http://www.runoob.com']);
$bulk->insert(['x' => 2, 'name'=>'Google', 'url' => 'http://www.google.com']);
$bulk->insert(['x' => 3, 'name'=>'taobao', 'url' => 'http://www.taobao.com']);
$res = $manager->executeBulkWrite('test.sites', $bulk);
return $res;
}
相关推荐
- PHP使用mongo-php-library操作MongoDB数据库的方法
-
1.介绍1.1介绍福哥今天带着大家学习一下使用PHP操作MongoDB数据库的方法,虽然我们的TFLinux早就安装了MongoDB数据库了,但是还没有应用用到MongoDB数据库,福哥打算先给T...
- MongoDB数据库的快速部署和启动(mongodb数据库怎么使用)
-
一、Mongodb介绍常见数据库介绍关系数据库RDBMS设计表结构,通过SQL语句进行操作。连表关系常见的关系型数据库:mysqloracle(商业)DB2(IBM)sqlserver(微软...
- 关于 PHP 启动 MongoDb 找不到指定模块问题
-
前言:最近有一个小demo,需要通过PHP将用户行为记录储存到MongoDB,再用Spark做协同过滤。由于以前处理跨语言交互是通过消息中间件,这次本地使用MongoDB却弄出了几个问...
- Mongodb在Linux上安装教程(mongodb安装教程图解)
-
正文开始:系统环境:linuxcentos7mongodb版本:4.4.0一、下载为了保证各处版本一致性及便捷性,使用官网下载安装包安装官网传送门:https://www.mongodb.com/t...
- MongoDB下载安装(mongodb下载哪个版本)
-
零、参考资料0.1安装https://blog.csdn.net/weixin_45767204/article/details/1301247370.2下载安装失败权限问题:可以看以下这个htt...
- MongoDB入门指南:下载、安装和配置一款强大的NoSQL数据库
-
MongoDB是一种流行的开源NoSQL数据库管理系统,用于存储和处理大规模数据。在本指南中,我将详细介绍如何下载、安装、配置和启动/停止MongoDB服务。下载和安装MongoDB:a.访问Mo...
- MongoDB 从入门到实战:.NET 平台完整指南
-
一、什么是MongoDBMongoDB是一种功能强大且灵活的NoSQL数据库,适用于处理大规模的半结构化数据和高并发场景。它不依赖于固定的表结构和关系模型,而是以文档的形式存储数据,每个文档可...
- CentOS安装MongoDB教程(centos8 mongodb)
-
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。下载...
- MongoDB最全详解(万字图文总结)(mongodb $ne)
-
大家好,我是mikechen。MongoDB是大型互联网架构经常使用到的数据库,各大厂也都会涉及,下面我就全面来详解MongoDB@mikechen作者:mikechen来源:mikechen.ccM...
- MongoDB功能与安装指南(mongodb部署安装)
-
MongoDB主要功能介绍MongoDB是一款开源的NoSQL文档数据库,适用于灵活、高性能和大规模数据存储场景。以下是其核心功能:灵活文档模型数据以BSON(BinaryJSON)文档形...
- 系列二:Anaconda虚拟环境准备(anaconda虚拟环境pycharm)
-
1、打开cmd执行,输入condacreate-nchatglm3python=3.102、激活ChatGLM3condaactivatechatglm3#退出虚拟环境condad...
- 第54节 错误处理及调试-Web前端开发之Javascript-零点程序-王唯
-
本内容是《Web前端开发之Javascript视频》的课件,请配合大师哥《Javascript》视频课程学习。错误处理对于web应用开发至关重要,任何javascript错误都有可能会导致网页无法使用...
- 系列专栏(八):JS的第七种基本类型Symbols
-
ES6作为新一代JavaScript标准,已正式与广大前端开发者见面。为了让大家对ES6的诸多新特性有更深入的了解,MozillaWeb开发者博客推出了《ES6InDepth》系列文章。CSDN...
- JavaScript 运算符(javascript 运算符优先级)
-
运算符=用于赋值。运算符+用于加值。运算符=用于给JavaScript变量赋值。算术运算符+用于把值加起来。实例指定变量值,并将值相加:y=5;z=2;x=y+z;在以上语句...
- JavaScript 变量(javascript 变量传递)
-
变量是用于存储信息的"容器"。实例varx=5;vary=6;varz=x+y;就像代数那样x=5y=6z=x+y在代数中,我们使用字母(比如x)来保存值(比如5)。通过上面的表达式...
- 一周热门
- 最近发表
-
- PHP使用mongo-php-library操作MongoDB数据库的方法
- MongoDB数据库的快速部署和启动(mongodb数据库怎么使用)
- 关于 PHP 启动 MongoDb 找不到指定模块问题
- Mongodb在Linux上安装教程(mongodb安装教程图解)
- MongoDB下载安装(mongodb下载哪个版本)
- MongoDB入门指南:下载、安装和配置一款强大的NoSQL数据库
- MongoDB 从入门到实战:.NET 平台完整指南
- CentOS安装MongoDB教程(centos8 mongodb)
- MongoDB最全详解(万字图文总结)(mongodb $ne)
- MongoDB功能与安装指南(mongodb部署安装)
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)