1,安装html
下载解压安装包linux
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.5.tgz tar -xvzf mongodb-linux-x86_64-3.6.5.tgz mv mongodb-linux-x86_64-3.6.5 mongodb
环境变量配置mongodb
vi /etc/pfofile #最后加入mongo的bin目录 export PATH=$PATH:/usr/local/mongodb/bin #刷新环境变量 source /etc/profile #建立mongodb的数据库目录 cd mongodb/ mkdir db
配置文件(etc/mongodb.cnf)数据库
port=27017 #端口
dbpath= /usr/local/mongodb/db #数据库存文件存放目录
logpath= /usr/local/mongodb/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=false #不以守护程序的方式启用,即不在后台运行
maxConns=100 #最大同时链接数
noauth=true #不启用验证
#auth=true #启用验证,设置完管理员权限后启用身份认证模式
journal=true #每次写入会记录一条操做日志(经过journal能够从新构造出写入的数据)。
#即便宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,而后重放后续的journal日志来恢复。
storageEngine=wiredTiger #存储引擎有mmapv一、wiretiger、mongorocks
#bind_ip = 0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
#启动mongodb服务
mongod --config /etc/mongodb.cnf& #服务已启动 [root@tencent01 bin]# ps -ef|grep mongodb root 21246 20823 25 11:27 pts/0 00:00:01 ./mongod --config /etc/mongodb.cnf root 21268 20823 0 11:27 pts/0 00:00:00 grep --color=auto mongodb
不启用验证方式,直接mongo命令就能够登陆数据app
2,初始化权限运维
添加管理员帐户ui
重启mongodb服务,mongo命令仍能访问数据库可是不能进行任何操做spa
使用身份认证方式登陆以后,就能够操做了 :mongo --port 27017 -u "root" -p "root123" -authenticationDatabase "admin".net
3,增删查改3d
建库,use db_name以后,建立任何一个集合以后,数据库便可自动建立。
集合的增删查改
db.my_collection.drop(); show collections; db.my_collection.insert({"user_id":"u001","name":"jack"}); db.my_collection.insert({"user_id":"u002","name":"jim","remark":"developer"}); db.my_collection.find({user_id:"u002"}) db.m_collection.update({user_id:"u002"},{$set:{remark:"senior developer"}}) db.my_collection.deleteMany({user_id:"u002"})
4,备份还原
mongodump -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -o /data/backup/ mongodump -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -d my_mongodb -o /data/backup/ mongorestore -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -d my_mongodb --drop /data/backup/
备份
还原
5,典型实际应用场景(本身YY出来的)
以博客园的文章为例,一篇文章无非就是“做者”,“标题”,“内容”,“发布时间”,“支持数”,“反对数”,“建立时间”,“评论”,等等元素
对于评论,包含了评论的“做者”,“内容”,“支持数”,“反对数”,“评论时间”等等,又是一个子文档,归结于文章的一部分,
若是用传统的关系数据库,看复杂程度,要表示这些信息,少说也要十张八张表,并且任何一个操做都不会太简单。
若是用mongodb,一篇文章,全部的信息均可以用一条集合来表示,经过操做这条集合的不一样元素来实现,极大地减小了对数据操做的简化程度。
以下,是文章自己的信息
db.article.insert({"id":"1", "做者":"一个牛逼的人", "title":"博客园文章", "content":"很长的一篇文章", "支持":"0", "反对":"0", "create_date":"2018-6-14" });
添加评论信息(某个文档下面添加子文档)
db.article.update({"id":"1"}, { $push: { comments: { "id" : "·", "user_name" : "jack", "content" : "1楼的评论……", "支持":"0", "反对":"0", "create_date" : "20180614" } } }) db.article.update({"id":"1"}, { $push: { comments: { "id" : "2", "user_name" : "mike", "content" : "2楼的评论……", "支持":"0", "反对":"0", "create_date" : "20180614" } } })
总体来看,从安装到使用,仍是很是简单的,开源技术想都不用想,难点在于运维,高可用,以及各类未知的坑的处理。
参考:
权限:https://blog.csdn.net/u013451157/article/details/78765784
安装:http://www.javashuo.com/article/p-pchgsjkf-ca.html
备份:http://www.javashuo.com/article/p-sylpknqa-hy.html