MongoDB是一个基于分布式文件存储的nosql数据库。在处理大数据的时候会比MySQL更有优势。爬虫的数据如果上了一个量级,可能用MongoDB会比MySQL更好
SQL和NoSQL的主要区别
- 在SQL中层级关系:数据库->表->数据
- 在NoSQL中是:数据库->集合->文档
1.无数据结构限制
- 没有表结构的概念,每条记录可以有完全不同的结构
- 业务开发方便快捷
{name:'小明',sex:'男'}{name:'jerry',address:'东北'}{name:'小红',home:[{'山东'},{江西}]}
2.大数据量和高性能
- nosql数据库都具有非常高的读写性能,尤其在大数量下表现优秀
3.良好的支持
- 完善的文档
- 齐全的驱动支持
在Linux中安装MongoDBsudo apt-get install mongodb
开启服务sudo service mongodb start
关闭服务sudo service mongodb stop
重启服务sudo service mongodb restart
注意:如果是系统非正常关闭,这样启动会报错,由于mongodb自动被锁上了,这是需要进入mongodb数据库文件所在的目录(/var/lib/mongodb/),删除目录中的mongodb.lock文件,然后再进行上述操作。
如果想让远程连接
需要修改 /etc/mongodb.conf打开文件:sudo vim /etc/mongodb.conf注释掉 bind 127.0.0.1
网址:https://www.mongodb.com/download-center/community

Windows安装MongoDB:https://www.cnblogs.com/chy18883701161/p/11100560.html
运行MongoDB
1.把MongoDB的bin目录加入到环境变量中
2.执行命令
mongod --dbpath D:\MongoDB\data # 启动
连接MongoDB
在环境变量设置好的前提下,使用以下命令mongo就可以进入到mongo的操作终端了
查看帮助命令
mongo -help
MongoDB概念介绍
| SQL概念 | MongoDB概念 | 解释 |
|---|---|---|
| database | database | 数据库 |
| table | collection | 数据库表/集合 |
| row | document | 数据记录行/文档 |
| column | field | 字段/域 |
| index | index | 索引 |
| primary key | primary key | 主键 |
三元素:数据库、集合、文档
- 文档:就是关系型数据库中的一行。文档是一个对象,由键值对构成,是json的扩展形式
{"name": "abc", "gender": 1}
- 集合:就是关系型数据库中的表。可以存储多个文档,结构可以不固定。
{"name": "abc", "gender": 1}{"name": "abc", "age": 18}{"title": "abc", "price": 1}
mongoDB中数据库的基本使用
- 查看数据库
- show dbs
- 切换数据库
- use 数据库
- 查看当前的数据库
- db
- 删除数据库
- db.dropDatabase()
- 会自动创建数据库
- use 数据库
- 查看集合
- show tables/show collections
MongoDB中集合的基础命令
不手动创建集合,向不存在的集合中第一次加入数据时,集合会被创建出来!!!!
手动创建集合 : db.createCollection(name,options)
- name: 要创建的集合名称
- options: 可选参数, 指定有关内存大小及索引的选项
- 参数capped:默认值为false表示不设置上限,值为true表示设置上限
- 参数size:当capped值为true时,需要制定此参数。表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节
查看集合
show collections
删除集合:db.集合名称.drop()
MongoDB的数据类型
- String:字符串,必须是有效的UTF-8
- Boolean:存储一个布尔值,true或者false
- Integer:整数可以是32位或64位,这取决于服务器
- Double:存储浮点数
- Arrays:数组或列表
- Object:嵌入式文档
- Null:存储Null值
- Timestamp:时间戳, 表示从1970-1-1到现在的总秒数
- Object ID是一个12字节的十六进制数
