wamp安装mongodb,tp5(php7.*)进行连接mongodb。。适合新手

下载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加入到系统环境变量中

wamp安装mongodb,tp5(php7.*)进行连接mongodb。。适合新手


- 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 (线程),然后查看操作位数

wamp安装mongodb,tp5(php7.*)进行连接mongodb。。适合新手
五、下载对应的版本的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扩展,出现下图则安装成功

wamp安装mongodb,tp5(php7.*)进行连接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
忽略版本匹配进行安装
安装成功后会在vendor文件下增加mongodb文件夹

七、tp5调用mongodb

有两种方式,第一种是直接使用Db类进行连接,第二种使用Model
两者区别是,Db类连接的可以在database.php目录下新建extra文件夹,在里面新建mnogodb_admin.php文件,也就是说可以使用mysql+mongodb双数据库
默认安装的mongodb是没有用户名和密码的,可以留空。如果你的服务器安装的mongodb提供了用户名和密码认证,请自行修改
wamp安装mongodb,tp5(php7.*)进行连接mongodb。。适合新手
之后
<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
class Mongotest extends Controller
{
public function test() {
// 读取一条数据
$data = [
'作者' => 'tuzi',
'年龄' => '22',
'标题' => '防塔与补兵',
'评论' => [
[
'序号' => '001',
'内容' => '五杀'
]
]
];
Db::connect('mongodb_admin')->table('admin')->insert($data);
$result = Db::connect('mongodb_admin')->table('admin')->select();
dump($result);
}
}
可以发现数据已经插入mongodb中,如果此时你用dos查看mongodb发现admin数据库下新增了admin集合。 使用db.admin.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_id='0001';
$test->user_name='tuzi';
if($test->save()){ echo "success"; }else{ echo "error"; }
$res = Db::table('test')->select(); dump($res);
}}