wamp安装mongodb,tp5(php7.*)进行连接mongodb

本文介绍MongoDB在Windows下的安装配置过程,并详细演示如何在ThinkPHP5框架中集成MongoDB,包括安装扩展、配置数据库连接及基本的数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载Mongodb安装包:
window下安装:
选择Complete,安装到默认路径:C:\Program Files\MongoDB\Server\3.4
选择Custom,安装自定义路径,比如我的:D:\Program Files\MongoDB\Server\3.4
windows下配置:
一、现在安装目录D:\Program Files\MongoDB\Server\3.4\bin下创建data文件夹,在data文件夹下创建db和log文件夹,
 
二、在程序搜索栏输入cmd,右键,选择以管理员运行(必须,否则后续配置服务会出错误: Error connecting to the Service Control Manager
mongod --dbpath "D:\Program Files\Mongodb\Server\3.4\bin\data\db" --logpath "D:\Program Files\Mongodb\Server\3.4\bin\data\log\MongoDB.log" --install --serviceName "MongoDB"
执行以上代码前提是,增加mongodb环境变量:将D:\Program Files\MongoDB\Server\3.4\bin加入到系统环境变量中
 
 
- mongod.exe负责开机 
- mongo.exe负责运行数据库(开机) 
- mongoimport.exe负责导入数据库 
- mongoexport.exe负责输出数据库 
- mongorestore.exe负责备份数据库
本地window可以直接使用mongo命令链接
A. 连接本地数据库
>mongo // 直接输入mongo命令即可
B. 连接远程数据库,无用户名和密码
> mongo 远程服务器IP:端口port // 如:mongo 192.168.1.2:27017
C.
连接远程数据库,有用户名和密码
> mongo 远程服务器IP:端口port -u 用户名 -p 密码 // 如:mongo 192.168.1.2:27017 -u admin -p pwd123
 
连接成功后可以添加用户
use admin
db.auth("trouble i am in","trouble i am in")
db.createUser(
{
user:"readwrite",
pwd:"readwrite",
roles:[{role:"readWrite",db:"test"}]
}
)。。。
三:
完成后使用NET start(stop) MongoDB 开启(关闭)mongodb服务
 
四:打开phpinfo 查看 nts(非线程) 还是 ts (线程),然后查看操作位数
 
五、下载对应的版本的php_mongodb.dll 文件
下载链接:  pecl mangodb下载  
(注: 下载需要翻墙,如果无法翻墙请留言发文件)
3. 把文件解压出来 php_mongodb.dll 文件复制到php安装目录下的 ext 目录下(列子: phpStudy\php\php-7.0.12-nts\ext)
4. 打开php.ini 配置文件增加行 : extension=php_mongodb.dll
5. 重启,再打开phpinfo() 查看是否有mongodb扩展,出现下图则安装成功
 
 
输入, http://localhost:27017/ 出现It looks like you are trying to access MongoDB over HTTP on the native driver port.安装成功
六、tp5,php7.0支持mongodb
 
1、dos命令切换到项目根目录,执行composer require mongodb/mongodb安装扩展,
如果报错版本不匹配,在项目composer.json中require数组中增加
"require": {
"php": ">=5.4.0",
"topthink/framework": "~5.0.0",
"topthink/think-image": "^1.0",
"topthink/think-queue": "^1.1",
"topthink/think-migration": "^1.1",
"topthink/think-testing": "^1.0",
"topthink/think-mongo": "1.7",
"topthink/think-captcha": "^1.0",
"topthink/think-angular": "^1.0" ,(这些是tp框架的composer配置)
"mongodb/mongodb": "1.3.1"(安装mongodb驱动)
},
切换到项目根目录,
composer update --ignore-platform-reqs( 慎用,会更新所有扩展
可以使用 composer requiremongodb/mongodb --ignore-platform-reqs直接更新
忽略版本匹配进行安装
安装成功后会在vendor文件下增加mongodb文件夹
 
七、tp5调用mongodb
 
有两种方式,第一种是直接使用Db类进行连接,第二种使用Model
两者区别是,Db类连接的可以在database.php目录下新建extra文件夹,在里面新建mnogodb_admin.php文件,也就是说可以使用mysql+mongodb双数据库
默认安装的 mongodb 是没有用户名和密码的,可以留空。如果你的服务器安装的mongodb提供了用户名和密码认证,请自行修改
之后
<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
class Mongotest extends Controller
{
public function test() {
// 读取一条数据
$data = [
'author' => 'charming',
'age' => '24',
'hobby' => [
[
'one' => 'eat',
'two' => 'drink'
]
]
];
Db::connect('mongodb_admin')->table('test')->insert($data);
$result = Db::connect('mongodb_test')->table('test')->select();
dump($result);
}
}
可以发现数据已经插入mongodb中,如果此时你用dos查看mongodb发现test数据库下新增了test集合。 使用db.test.findOne()可以查出同样的数据。
如果使用model类的话,直接修改database.php,之后直接增加 Mongotest 模型就行,在控制器直接调用
<?php
namespace app\ index\ controller;
use app\ index\ model\ Mongotest;
use think\ Controller;
use think\ Db;
class Model extends Controller{
public function Mongotest(){
$test = new Test;
 
$test->user_name= 'charming';
$test->age= 24;
if($test->save()){ echo "success"; } else{ echo "error"; }
$res = Db::table( 'test')->select(); dump($res);
}}
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值