1. 部署MongoDB服务  192.168.4.50
创建服务工作目录
]# mkdir /usr/local/mongodb
]# cd /usr/local/mongodb/
]# mkdir etc
]# mkdir log
]# mkdir -p  data/db
安装软件
]# tar -zxvf mongodb-linux-x86_64-rhel70-3.6.3.tgz 
]# cd mongodb-linux-x86_64-rhel70-3.6.3/
]# cp -r bin /usr/local/mongodb/
编写配置文件
]# vim /usr/local/mongodb/etc/mongodb.conf
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true
dbpath=/usr/local/mongodb/data/db
fork=true
:wq
启动服务
]# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf 
]# alias startmdb='/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf'
查看服务信息
]# netstat -utnlp | grep  :27017
]# ps -C mongod
PID TTY          TIME CMD
19768 ?        00:00:00 mongod
都有东西:
]# ls /usr/local/mongodb/log/
]# ls /usr/local/mongodb/data/db
  
停止服务
]# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf  --shutdown
]# alias stopmdb='/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf  --shutdown'
 
使用命令别名启动服务
]# startmdb
]# netstat -utnlp  | grep :27017
 
连接mongodb服务
]# /usr/local/mongodb/bin/mongo
> help
> exit
 
启动mongodb服务定义服务使用ip 地址及端口号
]# stopmdb
]# vim /usr/local/mongodb/etc/mongodb.conf
bind_ip=192.168.4.50
port=27050
:wq
]#startmdb
]# netstat  -utnlp | grep :27050
 
连接时指定指ip地址和端口号
]# /usr/local/mongodb/bin/mongo --host 192.168.4.50 --port 27050(两次)
> exit
 
2. MongoDB服务基本使用
2.1 常用管理命令
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
 
> use gamedb(没有则直接创建)
 
> db
gamedb
 
> db.t1.save({name:"bob",age:19,sex:"boy",school:"xxx"})
> db.t1.save({class:"999"})
> show tables
system.version
t1
 
> db.t1.find()
{ "_id" : ObjectId("5c6a56856f800ed6eb2a8479"), "name" : "bob", "age" : 19, "sex" : "boy", "tel" : "13152098678" }
{ "_id" : ObjectId("5c6a56a76f800ed6eb2a847a"), "class" : "999" }
 
> db.t2.save({name:"tom"})
> db.t1.count()
2
 
> db.t1.find({name:"jim"})
> db.t1.find({name:"tom"})
> db.t1.findOne()
db.t1.findOne()
{
"_id" : ObjectId("5c6a56856f800ed6eb2a8479"),
"name" : "bob",
"age" : 19,
"sex" : "boy",
"tel" : "13152098678"
}
 
> db.t1.remove({name:"tom"})
 
> db.t2.drop()
> show tables
> show tables
system.version
t1
 
> db.t1.remove({})
> db.t1.find() # 查找数据
> show tables
system.version
t1
 
2.2 mongodb基本数据类型
字符类型 "abc"  "中国"   
布尔 true 或false
空   null
数值 64位浮点型  8  NumberLong()  NumberInt()
数组 ["","",""]
 
字符
> db.t1.save({name:"tom"})
布尔
> db.t1.save({name:"jerry",card:true,marry:false})
> db.t1.save({name:"tom",card:true})
> db.t1.save({name:"lilei",ruslt:null})
> db.t1.find()
{ "_id" : ObjectId("5c6a57c76f800ed6eb2a847c"), "name" : "tom" }
{ "_id" : ObjectId("5c6a57d16f800ed6eb2a847d"), "name" : "jerry", "card" : true, "marry" : false }
{ "_id" : ObjectId("5c6a57d86f800ed6eb2a847e"), "name" : "tom", "card" : true }
{ "_id" : ObjectId("5c6a58046f800ed6eb2a847f"), "name" : "lilei", "ruslt" : null }
 
 
数值
> db.t1.save({name:"mack3",pay:NumberLong(300000)})
> db.t1.save({name:"mack3",pay:NumberInt(300.56)})
> db.t1.save({name:"mack3",pay:300.56})
{ "_id" : ObjectId("5c6a5a656f800ed6eb2a8480"), "name" : "mack3", "pay" : NumberLong(300000) }
{ "_id" : ObjectId("5c6a5a676f800ed6eb2a8481"), "name" : "mack3", "pay" : 300 }
{ "_id" : ObjectId("5c6a5a6f6f800ed6eb2a8482"), "name" : "mack3", "pay" : 300.56 }
 
数组
> db.t1.save({name:"mack4",like:["a","b","c"]})
> db.t1.find()
{ "_id" : ObjectId("5c6a5aa06f800ed6eb2a8483"), "name" : "mack4", "like" : [ "a", "b", "c" ] }
 
代码
> db.t1.save({ lname:"php",dm:function(){/* <?php echo "abc"; ?>*/}})
> db.t1.find({lname:"php"})
{ "_id" : ObjectId("5c6a5ac86f800ed6eb2a8485"), "lname" : "php", "dm" : { "code" : "function (){/* <?php echo \"abc\"; ?>*/}" } }
 
对象
> db.t1.save({name:"009", num:ObjectId() })
> db.t1.find()
{ "_id" : ObjectId("5c6a5ae36f800ed6eb2a8487"), "name" : "009", "num" : ObjectId("5c6a5ae36f800ed6eb2a8486") }
 
日期
> db.t1.save({ name:"jerry",birthday:new Date() })
{ "_id" : ObjectId("5c6a5b6c6f800ed6eb2a8488"), "name" : "jerry", "birthday" : ISODate("2019-02-18T07:14:52.596Z") }
 
内嵌  
> db.t3.save({ 
birdbook: { worker:"birdboy" ,pay:99 , ver:3.0},
  ttt: { addr:"bg" ,tel:"12306",per:"shy"}  
})
> db.t3.find()
{ "_id" : ObjectId("5c6a5ba66f800ed6eb2a8489"), "birdbook" : { "worker" : "birdboy", "pay" : 99, "ver" : 3 }, "ttt" : { "addr" : "bg", "tel" : "12306", "per" : "shy" } }
 
正则表达式
> db.t3.save({name:"cc",bds:/.*a.*/})
> db.t3.save({name:"dd",bds:/^..$/})
> db.t3.save({name:"dd",bds:/^a/})
> db.t3.find()
{ "_id" : ObjectId("5c6a5bf86f800ed6eb2a848b"), "name" : "cc", "bds" : /.*a.*/ }
{ "_id" : ObjectId("5c6a5bfe6f800ed6eb2a848c"), "name" : "dd", "bds" : /^..$/ }
{ "_id" : ObjectId("5c6a5c036f800ed6eb2a848d"), "name" : "dd", "bds" : /^a/ }
 
2.3 数据导入导出   
数据导出: 把集合的文档存储到系统文件里
创建存储文件的目录
]# mkdir /mdb
导出为json格式
]# /usr/local/mongodb/bin/mongoexport \
 --host 192.168.4.50 --port 27050  \
 -d gamedb -c t1 --type=json > /mdb/gamedb_t1.json(必须有gamedb库,t1表)
 
]# ls /mdb/*.json
]# cat /mdb/gamedb_t1.json 
 
导出为csv格式
]# /usr/local/mongodb/bin/mongoexport  \
 --host 192.168.4.50 --port 27050 \
 -d gamedb -c t1 -f name,age --type=csv >  /mdb/gamedb_t1.csv
 
]# ls /mdb/*.csv
]# cat /mdb/gamedb_t1.csv
 
数据导入: 把系统文件的内容存储到集合里
 
使用json文件导入数据
]# /usr/local/mongodb/bin/mongoimport \
 --host 192.168.4.50 --port 27050 \
 -d bbsdb  -c user --type=json /mdb/gamedb_t1.json 
 
]#/usr/local/mongodb/bin/mongo --host 192.168.4.50 --port 27050
> show dbs
> use bbsdb
> show tables
> db.user.count()
> db.user.find()
 
使用csv文件导入数据
]# /usr/local/mongodb/bin/mongoimport \
   --host 192.168.4.50 --port 27050 \ 
   -d bbsdb  -c user2  -f user,old \
   --type=csv  /mdb/gamedb_t1.csv
 
> use bbsdb
> db.user2.count()
> db.user2.find()
 
不加 --drop 选项 是追加方式导入数据 反之 删除原表后再导入数据
]# /usr/local/mongodb/bin/mongoimport \
  --host 192.168.4.50 --port 27050 \ 
  -d bbsdb  -c user5  --headerline  --drop  \
  --type=csv  /mdb/gamedb_t1.csv
 
> use bbsdb
> db.user5.count()
> db.user5.find()
 
把/etc/passwd文件的内容存储到 bbsdb库里user6集合里。
]# cp /etc/passwd /mdb/
 
]# sed -i  's/:/,/g'  /mdb/passwd
 
]# sed -i '1iname,password,uid,gid,comment,homedir,shell' /mdb/passwd
 
]# /usr/local/mongodb/bin/mongoimport --host 192.168.4.50 \
   --port 27050  -d bbsdb  -c user6 \
   --headerline --type=csv /mdb/passwd
 
> use bbsdb
> db.user6.count()
> db.user6.find()
 
2.4 数据备份恢复
数据备份
  170  cd /mdb
  171  ls
  172  /usr/local/mongodb/bin/mongodump  --host 192.168.4.50 --port 27050 
  173  ls
  174  cd dump/
  175  ls
  176  ls admin/
  177  cat admin/system.version.bson  报错
  178  /usr/local/mongodb/bin/bsondump /mdb/dump/bbsdb/user6.bson 
 
  180  mkdir /mdbbak
  181  /usr/local/mongodb/bin/mongodump  --host 192.168.4.50 \
       --port 27050 -d bbsdb  -c user6  -o  /mdbbak/
  
  182  ls /mdbbak/
  183  ls /mdbbak/bbsdb/
  184  /usr/local/mongodb/bin/bsondump /mdbbak/bbsdb/user6.bson(查看 数据) 
 
数据恢复
]# /usr/local/mongodb/bin/mongorestore  \
 --host  192.168.4.50  --port 27050 \
 -d testdb -c teatab  /mdbbak/bbsdb/user6.bson 
 
删除要恢复的库 再执行恢复
]# /usr/local/mongodb/bin/mongorestore  \
 --host  192.168.4.50  --port 27050  /mdb/dump/

四十二.部署MongoDB服务 、 MongoDB基本使用的更多相关文章

  1. 第四十二章 微服务CICD(4)- jenkins + gitlab + webhooks + publish-over-ssh(2)

    上一节完成了"当git客户端push代码到gitlab后,jenkins会立即去gitlab拉取代码并构建". 目的:本节完成jenkins自动构建之后,自动的将jar包部署到应用 ...

  2. AngularJS进阶(四十)创建模块、服务

    AngularJS进阶(四十)创建模块.服务 学习要点 使用模块构架应用 创建和使用服务 为什么要使用和创建服务与模块? 服务允许你打包可重用的功能,使之能在此应用中使用. 模块允许你打包可重用的功能 ...

  3. Gradle 1.12用户指南翻译——第四十二章. Announce插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  4. NeHe OpenGL教程 第四十二课:多重视口

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. 网站开发进阶(四十二)巧用clear:both

    网站开发进阶(四十二)巧用clear:both 前言 我们在制作网页中用div+css或者称xhtml+css都会遇到一些很诡异的情况,明明布局正确,但是整个画面却混乱起来了,有时候在IE6下看的很正 ...

  6. SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关

    0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...

  7. “全栈2019”Java第四十二章:静态代码块与初始化顺序

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. 第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗?

    第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗? 几个月前(回到3月份),您可能还记得我在这个系列的52件东西中发布了第23件(可以在这里找到).这篇文章的标题是& ...

  9. 【第十二章】 springboot + mongodb(复杂查询)

    简单查询:使用自定义的XxxRepository接口即可.(见 第十一章 springboot + mongodb(简单查询)) 复杂查询:使用MongoTemplate以及一些查询条件构建类(Bas ...

随机推荐

  1. 最简容器化动手小实践——再战flappybird

    <Flappy Bird>是一名越南开发者所开发的游戏,这款游戏的主要内容是帮助一只小鸟穿越水管的层层阻碍,玩家所需要的只是点击屏幕从而调整小鸟的高度.而令这款游戏与众不同的是,这款游戏的 ...

  2. Thymeleaf模板引擎与springboot关联后,在html中无法使用el表达式获取model存的值

    头部引入了thymeleaf <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thy ...

  3. apply,call和bind的使用及区别

    1.用途 1)apply,call和bind都是 用来改变this的指向 2)apply和call会让当前函数立即执行,而bind会返回一个函数,后续需要的时候再调用执行 2.this指向问题 thi ...

  4. VS.NET(C#)--2.2_事件

    事件 事件 由用戶行为生成系统触发(事件处理程序).在ASP.NET中,对象可以触发事件.用户在浏览器对服务器控件的任何行为都可能触发事件,但是在服务器端处理. 页面和控件事件 它们继承自contro ...

  5. Redis—.Net中的使用

    StackExchange.Redis使用以及封装 来源:http://www.cnblogs.com/qtqq/p/5951201.html,https://www.cnblogs.com/xsj1 ...

  6. oracle 的分页、截断查询

    oracle 分页.截断查询 需求:从车管所的备案库中(oracle)取出数据,放到车综大数据平台(http方式) 现场情况:oracle中有三张表,CZRKXX(常住人口信息),ZDRYXX(重点人 ...

  7. 【转载】IIS一个网站如何绑定多个主机域名

    在IIS Web服务器的网站配置的过程中,有时候需要一个网站配置对应多个域名记录,例如不带www的主域名以及带www的域名解析记录对应同一个网站文件,此时最简单的配置方法就是将一个网站绑定多个主机域名 ...

  8. Fortify漏洞之Open Redirect(开放式重定向)

    继续对Fortify的漏洞进行总结,本篇主要针对  Open Redirect(开放式重定向)  的漏洞进行总结,如下: 1.1.产生原因: 通过重定向,Web 应用程序能够引导用户访问同一应用程序内 ...

  9. 关于lock和synchronized的选择

    这里不介绍具体用法,介绍lock和synchronized的不同从而做出选择 1.lock是一个接口,而synchronized是java中的一个关键字,synchronized是内置的语言实现. 2 ...

  10. 记录--linux下mysql数据库问题

    本次主要记录一下linux下mysql数据库的一些问题,也是之前经常用到的知识,这里简单总结一些问题,方便自己以后的回顾.原来一直使用的是阿里云的RDS数据库mysql版,主要是因为上次阿里云做活动可 ...