MongoDB是一个基于分布式文件存储的nosql数据库。在处理大数据的时候会比MySQL更有优势。爬虫的数据如果上了一个量级,可能用MongoDB会比MySQL更好

SQL和NoSQL的主要区别

  • 在SQL中层级关系:数据库->表->数据
  • 在NoSQL中是:数据库->集合->文档

1.无数据结构限制

  • 没有表结构的概念,每条记录可以有完全不同的结构
  • 业务开发方便快捷
  1. {name:'小明',sex:'男'}
  2. {name:'jerry',address:'东北'}
  3. {name:'小红',home:[{'山东'},{江西}]}

2.大数据量和高性能

  • nosql数据库都具有非常高的读写性能,尤其在大数量下表现优秀

3.良好的支持

  • 完善的文档
  • 齐全的驱动支持

在Linux中安装MongoDB
sudo apt-get install mongodb

开启服务
sudo service mongodb start

关闭服务
sudo service mongodb stop

重启服务
sudo service mongodb restart

注意:如果是系统非正常关闭,这样启动会报错,由于mongodb自动被锁上了,这是需要进入mongodb数据库文件所在的目录(/var/lib/mongodb/),删除目录中的mongodb.lock文件,然后再进行上述操作。

如果想让远程连接

  1. 需要修改 /etc/mongodb.conf
  2. 打开文件:
  3. sudo vim /etc/mongodb.conf
  4. 注释掉 bind 127.0.0.1

网址:https://www.mongodb.com/download-center/community

clipboard.png

Windows安装MongoDB:https://www.cnblogs.com/chy18883701161/p/11100560.html

运行MongoDB

1.把MongoDB的bin目录加入到环境变量中
2.执行命令

  1. mongod --dbpath D:\MongoDB\data # 启动

连接MongoDB

在环境变量设置好的前提下,使用以下命令mongo就可以进入到mongo的操作终端了

查看帮助命令

  1. mongo -help

MongoDB概念介绍

SQL概念 MongoDB概念 解释
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 字段/域
index index 索引
primary key primary key 主键

三元素:数据库、集合、文档

  • 文档:就是关系型数据库中的一行。文档是一个对象,由键值对构成,是json的扩展形式
  1. {"name": "abc", "gender": 1}
  • 集合:就是关系型数据库中的表。可以存储多个文档,结构可以不固定。
  1. {"name": "abc", "gender": 1}
  2. {"name": "abc", "age": 18}
  3. {"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时,需要制定此参数。表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节

查看集合

  1. 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字节的十六进制数