MongoDB

1. MongoDB 安装

1.1 安装前的准备

这里提供 MongoDB 安装文件及 MongoDB 可视化管理工具 Robot 3T
百度网盘(提取码:5354)
天翼云盘(访问码:bvb4)
MongoDB 官网下载

1.2 安装 MongoDB

选择Custom
选择安装位置
出现下面这个界面时,取消勾选 MongoDB Compass(图形界面管理工具) 的安装,这里我们使用 Robot 3T,而且 MongoDB Compass 的安装会特别慢,可能要等几个小时以上。
取消勾选Compass

1.3 安装 Robot 3T

由于 Robot 3T 属于傻瓜式安装软件,一直点击 Next 即可,这里不作描述说明。

2. MongoDB 配置

2.1 配置环境变量

这里提供一个 MongoDB 环境变量配置的批处理文件,把下面的文本保存为 vbs 格式的文件(文件名任意)。

on error resume next
' 系统环境变量的数组对象 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path
set sysenv=CreateObject("WScript.Shell").Environment("system")
' 添加变量
sysenv("Path")="D:\dev\MongoDB\Server\3.6\bin;"+sysenv("Path")  ' 这里需要修改为 MongoDB 的安装目录

wscript.echo "MongoDB environment variable configuration succeeded"

使用时双击保存的文件,看到下面的提示框,说明 MongoDB 环境变量已配置完成。
MongoDB 环境变量配置

2.2 创建数据库文件存放位置

由于启动 MongoDB 服务必须创建数据库文件的存放文件夹,否则命令不会自动创建,服务也就无法启动成功。
MongoDB 安装目录下新建一个 data 文件夹,在 data 文件夹下新建一个 db 文件夹,用于存放数据库文件。
创建数据库文件存放位置

2.3 注册本地 Windows MongoDB 服务

注册本地 Windows MongoDB 服务后,可以设置开机自启动,也可以不进入 bin 目录通过命令行 net start MongoDB 启动 MongoDB

  • data 文件夹下新建一个 log 文件夹,用于存放日志。
    新建log文件夹

  • 创建 mongo.config 配置文件(与 bin 目录同级)
    在配置文件中加入以下配置

    # 数据库路径
    dbpath="D:\dev\MongoDB\Server\3.6\data\db"
    # 日志输出文件路径
    logpath="D:\dev\MongoDB\Server\3.6\data\log\mongo.log"
    # 错误日志采用追加模式
    logappend=true
    # 启用日志文件,默认启用
    journal=true
    # 过滤一些无用的日志信息,若如要调试设置为false
    quiet=true
    # 端口号 默认27017
    port=27017
    # 任意IP都能访问
    bind_ip=0.0.0.0
    # 密码验证  
    auth=true
    

    创建mongo.config配置文件

  • 安装 MongoDB 服务
    管理员身份 打开 cmd 命令窗口,进入 MongoDB 安装目录下的 bin 文件夹,执行以下命令(注意:一定要以 管理员身份 打开 cmd 命令窗口,否则以下命令执行会一直报错)。

    mongod -dbpath "D:\dev\MongoDB\Server\3.6\data\db" -logpath "D:\dev\MongoDB\Server\3.6\data\log\mongo.log" -bind_ip_all -install -serviceName "MongoDB"
    

    MongoDB 就是启动的服务名字,如果执行上面的命令出现错误,先执行 sc delete MongoDB 删除服务,再次输入上面的命令即可。

至此,MongoDB 服务已配置完成。

2.4 启动 MongoDB 服务

管理员身份 打开 cmd 命令窗口,执行以下命令启动 MongoDB 服务。

net start MongoDB

如果启动报错,则可以执行 mongod.exe --remove --serviceName "MongoDB" 命令移除 MongoDB 服务,重新 安装 MongoDB 服务 即可。

2.5 设置 MongoDB 数据库访问密码

admin 数据库设置设置访问用户及密码。

首先要在 mongo.config 配置文件中添加 auth=true 这个配置,重新启动 MongoDB 服务,使配置生效。

管理员身份 打开 cmd 命令窗口,依次执行以下命令。

# 进入 MongoDB 环境
mongodb
# 进入 admin 数据库
use admin
# 创建用户密码
db.createUser( {user: "root",pwd: "root",roles: [ { role: "root", db: "admin" } ] } )

设置 MongoDB 数据库访问密码

通过 db.auth("用户名","密码") 可以验证用户及密码创建结果,返回 1 则说明用户密码生效。
验证用户及密码创建结果

2.6 MongoDB 常用命令

# 开启服务
net start MongoDB
# 关闭服务
net stop MongoDB

3. MongoDB 备份还原

3.1 备份

管理员身份 打开 cmd 命令窗口,执行以下命令。

mongodump -h 主机地址 -p 端口号 -u 用户名 -p 密码 -d 数据库 -o 备份文件路径
# 例子
mongodump -h localhost -p 27017 -u root -p root -d admin -o c:\mongobak

3.2 还原

管理员身份 打开 cmd 命令窗口,执行以下命令。

mongorestore -h 主机地址 -p 端口号 -u 用户名 -p 密码 -d 数据库 还原文件路径
# 例子
mongorestore -h localhost -p 27017 -u root -p root -d admin c:\mongobak

3.3 Windows 批处理全量备份脚本

思路:每周备份一次,每次运行脚本删除上周的备份文件(省略定时任务配置)。

@echo off
>tmp.vbs echo wscript.echo dateadd("d",-7,date())
for /f "tokens=1-3 delims=-/ " %%a in ('cscript //nologo tmp.vbs') do set/a y=%%a,m=100%%b,d=100%%c
del tmp.vbs&set LastBackupTime=%y%%m:~-2%%d:~-2%&set Today=%date:~0,4%%date:~5,2%%date:~8,2%
echo ****** MongoDB Full Backup Start ******
rd /s /q D:\bakcup\mongo\%LastBackupTime%
"D:\dev\MongoDB\Server\3.6\bin\mongodump.exe" -h 127.0.0.1 -p 27017 -u root -p root -d admin -o D:\bakcup\mongo\%Today%
echo ****** MongoDB Full Backup End ******
@echo on

4. MongoDB 文件上传案例(Java)

4.1 思路

上传:实现把文件上传到 MongoDB 数据库,并将文件信息保存到在 PostgreSQL 中。
下载:通过 PostgreSQL 中保存的文件信息,到 MongoDB 数据库获取文件。

PostgreSQL 中保存文件信息的表结构设计:

字段名类型注释
idvarchar(50)主键
master_idvarchar(50)业务 ID
prefixvarchar(50)业务前缀
suffixvarchar(50)业务后缀
file_typevarchar(50)文件类型
file_namevarchar(100)文件名
file_sizefloat8(53)文件大小
upload_timetimestamp上传时间
mongo_idvarchar(100)MongoDB 文件 ID
mongo_thum_idvarchar(100)MongoDB 缩略图 ID(图片压缩)
is_deletedvarchar(1)逻辑删除标记
deleted_timetimestamp删除时间

案例详见 mongodb_demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值