一、简介
MongoDB是一个介于关系数据库和非关系数据库之间的文档数据库,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是 json二进制化 的 Bson对象,因此可以存储比较复杂的数据类型。
二、特点
Mongo内部执行引擎为JS解释器,把文档存储成Bson结构,转换为JS对象,并可以通过熟悉的JS语法来操作。
Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
三、MongoDB和传统数据库对比
传统数据库:
结构化数据,定好了表结构,每一行的内容,必须符合表结构,就是说—-列的个数、类型都是一样的
MongoDB:
表下面的每篇文档都可以有自己独特的结构(Json对象都可以有自己独特的属性和值)
四、安装
官网地址:https://www.mongodb.com/
下载地址:https://www.mongodb.com/download-center?jmp=nav#community #建议下载stable版本
下载命令:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.4.tgz
备注:直接解压就可以用的
核心:
mongod 服务器端
mongos 查询路由器(集群分片时用)
mongo 客户端
二进制导出导入:
mongodump 数据库整体导出bson数据(适合做备份)
mongorestore 数据库整体导入bson
bsondump bson转换为json
数据导出导入:
mongoexport 导出json,csv,tsv格式(只是导出数据,适合于和其他数据库交互用)
mongoimport 导入json,csv,tsv(只是数据导入)
诊断工具:
mongostats
mongotop
mongosniff 用来检查mongo运行状态
五、启动
$ mkdir /mongo/{data,logs} -p #创建数据目录和日志目录
$ mv /usr/local/src/mongodb-linux-x86_64-3.2.19 /usr/local/mongodb
$ /usr/local/mongodb/bin/mongod --dbpath /mongo/data/ --logpath /mongo/logs/test.log --fork --port 27017
about to fork child process, waiting until server is ready for connections.
forked process: 1628
child process started successfully, parent exiting
$ ps -ef | grep mongo
root 1628 1 3 13:45 ? 00:00:00 /usr/local/mongodb/bin/mongod --dbpath /mongo/data/ --logpath /mongo/logs/test.log --fork --port 27017
root 1648 1428 0 13:46 pts/0 00:00:00 grep --color=auto mongo
#连接数据库
$ /usr/local/mongodb/bin/mongo
参数说明:
--dppath 数据库存储目录
--logpath 日志运行目录
--port 端口,默认时27017,可以不用写
--fork 后台运行
备注:
mongdb是比较耗费内存和磁盘空间(一般占3-4G)的,如果虚拟机测试,在启动的时候可以加上 –smallfiles 参数。