简介
Mongo并非芒果(Mango)的意思,而是源于Humongous(巨大的,庞大的)一词
MongoDB是一个基于分布式文件存储的NoSQL数据库,由C++语言编写。旨在为WEB应用提供可扩展
的高性能数据存储解决方案。
MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系数据库的。

MongoDB使用了BSON(Binary JSON)对象来存储,与JSON格式的键值对(key/value)类似,字段值可以
包含其他文档,数组及文档数组。支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,
几乎可以实现类似关系型数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB 与关系型数据库术语对比


数据类型

部署MongoDB
下载二进制包
下载地址:https://www.mongodb.com/try/download/community
安装
下载安装包并且解压
[root@servera ~]# mkdir -p /usr/local/mongodb
[root@servera ~]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.6.tgz
[root@servera ~]# tar xzvf mongodb-linux-x86_64-rhel70-4.4.6.tgz -C /usr/local
[root@servera ~]# cd /usr/local/
[root@servera ~]# ln -s mongodb-linux-x86_64-rhel70-4.4.6 mongodb
创建用于存放数据和日志的文件夹,并修改其权限增加读写权限
# 创建存放数据的目录
[root@servera ~]# mkdir -p /usr/local/mongodb/data/db
# 创建存放日志的目录
[root@servera ~]# mkdir -p /usr/local/mongodb/logs
# 创建日志记录文件
[root@servera ~]# touch /usr/local/mongodb/logs/mongodb.log
启动MongoDB
命令行方式启动
[root@servera ~]# cd /usr/local/mongodb/
[root@servera ~]# bin/mongod \
--dbpath /usr/local/mongodb/data/db/ \
--logpath /usr/local/mongodb/logs/mongodb.log \
--logappend \
--port 27017 \
--bind_ip 0.0.0.0 \
#--fork --后台启动,以守护进程的方式启动 MongoDB,不加fork则为前台启动
[root@servera ~]# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf
* --dbpath:指定数据文件存放目录
* --logpath:指定日志文件,注意是指定文件不是目录
* --logappend:使用追加的方式记录日志
* --port:指定端口,默认为 27017
* --bind_ip:绑定服务 IP,若绑定 127.0.0.1,则只能本机访问,默认为本机地址
指定配置文件方式启动
在 bin 目录下增加一个 mongodb.conf 配置文件
[root@servera ~]# vim /usr/local/mongodb/bin/mongodb.conf
# 数据文件存放目录
dbpath = /usr/local/mongodb/data/db
# 日志文件存放目录
logpath = /usr/local/mongodb/logs/mongodb.log
# 以追加的方式记录日志
logappend = true
# 端口默认为 27017
port = 27017
# 对访问 IP 地址不做限制,默认为本机地址
bind_ip = 0.0.0.0
# 以守护进程的方式启用,即在后台运行
fork = true
配置systemd服务
[root@servera ~]# vim /usr/lib/systemd/system/mongodb.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config
/usr/local/mongodb/bin/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config
/usr/local/mongodb/bin/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@servera ~]# chmod 754 /usr/lib/systemd/system/mongodb.service
[root@servera ~]# systemctl restart mongodb
客户端配置
添加环境变量
[root@servera ~]# vim /etc/profile
export PATH=/usr/local/mongodb/bin/:$PATH
#刷新文件
[root@servera ~]# source /etc/profile
#添加环境变量后可直接通过mongo启动
[root@servera ~]# mongo
客户端常用命令
# 查看帮助
> help
db.help() help on db methods
db.mycoll.help() help on collection methods
sh.help() sharding helpers
rs.help() replica set helpers
help admin administrative help
help connect connecting to a db help
help keys key shortcuts
help misc misc things to know
help mr mapreduce
show dbs show database names
show collections show collections in current database
show users show users in current database
show profile show most recent system.profile entries
with time >= 1ms
show logs show the accessible logger names
show log [name] prints out the last segment of log in
memory, 'global' is default
use <db_name> set current database
db.mycoll.find() list objects in collection mycoll
db.mycoll.find( { a : 1 } ) list objects in mycoll where a == 1
it result of the last line evaluated; use
to further iterate
DBQuery.shellBatchSize = x set default number of items to display
on shell
exit quit the mongo shell
# 查看版本信息
> db.version()
4.4.6
# 查看数据库
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
关闭MongoDB
使用kill
# 查看 mongodb 运行的进程信息
[root@servera ~]# ps -ef | grep mongodb
# kill -9 强制关闭
[root@servera ~]# kill -9 pid
使用pkill
[root@servera ~]# pkill mongo
Comments | NOTHING