下载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 文件
(注: 下载需要翻墙,如果无法翻墙请留言发文件)
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);
}}