前提: 已安装docker和docker-compose
安装mongodb
# 此处我将mongodb安装在/home/mongotest下
cd /home/
mkdir mongotest
cd mongotest/
# 创建docker-compose.yml文件
vi docker-compose.yml
# 进入编辑状态
i
# 粘贴以下内容
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root # 这里设置管理员账户为root
MONGO_INITDB_ROOT_PASSWORD: example # 密码example
ports:
- 27017:27017
# mongo数据持久化
volumes:
- /home/mongotest:/data/db
# 退出编辑状态
esc
# 保存
:wq
# 运行
docker-compose up -d
# 防火墙放行端口27017
# 查看firewalld状态,若为dead状态,则需要开启防火墙systemctl start firewalld
systemctl status firewalld
# 让防火墙永久放行27017端口
firewall-cmd --add-port=27017/tcp --permanent
# 重启防火墙
firewall-cmd --reload
初始化配置
cd mongotest/
# 连接数据库
# 注意:mongo5.0以下的版本使用mongo来替换mongosh,即docker exec -it mongotest_mongo_1 mongo
docker exec -it mongotest_mongo_1 mongosh
# 切换到管理员用户
use admin
db.auth('root','example') # 管理员授权登录
# 创建一个数据库testdb
use testdb
# 创建一个用户,用户名为test,密码123456。
db.createUser({user:'test',pwd:'123456',roles:[{role:'dbOwner',db:'testdb'}]})
# 测试下上面添加的用户是否可以登录数据库testdb
use testdb
db.auth('test','123456')
# 测试插入数据
db.users.insertOne({'name':'sue',age:30,email:'test@foxmail.com'})
show collections
db.users.find({})
db.users.insertOne({name:'soft',age:20})
db.users.find({})
# 测试更新
db.users.updateOne({name:'sue'},{$set:{email:'test1@foxmail.com'}})
db.users.find({})
# 测试删除
db.users.deleteOne({'name':'sue'})
db.users.find({})
GUI工具连接数据库(Robo 3T)
注:连接之前,确保云服务器 端口27017已放行,详见《云服务设置端口放行》
备份与恢复
备份方式:docker cp + mongodump
恢复方式:docker cp + mongorestore文章来源:https://www.toymoban.com/news/detail-655320.html
# mongotest_mongo_1 容器
# mongodump 指令
# -h 连接的mongodb的host
# -u 用户
# -p 密码
# -d 指定备份哪个数据库,不接的话代表备份所有数据库
# -o 指定备份到哪个目录
# 1.备份
docker exec -it mongotest_mongo_1 mongodump -h localhost -u root -p example -o /tmp/test
cd /tmp/
docker cp e401dcb60416:/tmp/test /tmp/test
# 2.恢复
docker exec -it mongotest_mongo_1 mongorestore -h localhost -u root -p example --dir /tmp/test
Nodejs中的Mongoose库
- 比较
分类 | Oralce/Mysql | MongoDB | Mongoose |
---|---|---|---|
1 | 数据库实例 | MongoDB实例 | Mongoose |
2 | 模式(schema) | 数据库(database) | mongoose |
3 | 表(table) | 集合(collection) | 模板(Schema) 模型(Model) |
4 | 行(row) | 文档(document) | 实例(instance) |
5 | Prinary key | Object(_id) | Object(_id) |
6 | 表字段Column | Field | Field |
- 使用
库:https://mongoosejs.com/
mkdir mongoose-demo
cd mongoose-demo
npm init -y
npm install -s mongoose
// app.js
const mongoose = require('mongoose')
mongoose.connect('mongodb://test:123456@121.199.33.98:27017/testdb',{useNewUrlParser: true})
// 连接数据库的Connection
const User = mongoose.model('users', {name: String, age: Number, email: String})
const imooc = new User({
name: 'imooc-test',
age:30,
email: 'imooc@imooc.com'
})
imooc.save().then(() => {console.log('save OK!')})
node app.js
文章来源地址https://www.toymoban.com/news/detail-655320.html
到了这里,关于Docker 如何安装、启动、配置 MongoDB?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!