爬虫专项(15)】MongoDB快速入门"/>
【python爬虫专项(15)】MongoDB快速入门
NoSQL是什么?
NoSQL,指的是非关系型的数据库,相比于sql关系型数据库来说
NoSQL = Not Only SQL ,意即"不仅仅是SQL"
NoSQL用于超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展
可以通过第三方平台很容易的访问和抓取数据:用户的个人信息,社交网络,地理位置
数据采集过程中,由于采集字段无法完全确定,用nosql更简单、直接
优点
高可扩展性
分布式计算
低成本
架构的灵活性,半结构化数据
没有复杂的关系
缺点
没有标准化
有限的查询功能(到目前为止)
最终一致是不直观的程序
我们选择哪种Nosql数据库?
MongoDB:文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能
什么是MongoDB?
概念
MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案
MongoDB是非关系数据库
存储对象
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成
MongoDB 文档类似于 JSON 对象,字段值可以包含其他文档,数组及文档数组
特点
MongoDB安装简单
MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
可以在MongoDB记录中设置任何属性的索引 (如:FirstName=“Sameer”,Address=“8 Gandhi Road”)来实现更快的排序
MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言
MongoDB安装
1) 安装mongo
windows系统
MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,建议默认安装地址C:\Program Files\MongoDB\Server\4.2\bin下面
注意
下一步安装 “install mongoDB compass” 不勾选,后续用robo3t来作为图形界面管理工具
mac系统
MongoDB 提供了 OSX 平台上 64 位的安装包,你可以在官网下载安装包,和windows系统的下载软件在同一界面上
2)安装robo3t
robo3t:mongodb图形界面管理工具
直接进入win或者mac版本,官网下载
直接安装,第一次启动需要填写信息,具体使用方法在mongodb初步使用之后讲解
MongoDB概念解析
1)运行,直接启动mongodb
找到安装目录下的“mongo.exe”,运行并启动
然后就进入命令行界面
2)关系型数据管理系统(sql)与mongodb中概念的对应关系(RDBMS - MongoDB)
数据库 - 数据库
表格 - 集合
行 - 文档
列 - 字段
3) 数据库:database
概念
一个mongodb中可以建立多个数据库。
MongoDB的默认数据库为"db",该数据库存储在data目录中
MongoDB的单个实例可容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中
show dbs 命令可以显示所有数据的列表
示例
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
db 命令可以显示当前数据库对象或集合
示例
这里show dbs没有显示test数据库,为什么查看当前运行的数据库时候是test数据库???想一下(未被真实创建)
use 命令,可以连接到一个指定的数据库
示例
4) 数据记录行/文档:document
概念
文档是一组键值(key-value)对,类似python中的字典对象,但不完全一样
注意
文档中的键/值对是有序的
MongoDB区分类型和大小写
MongoDB的文档不能有重复的键
文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符
示例
{“name”: “farbird”, “age”:18}
在操作过程中要注意书写,这里顺便解释了之前的test数据库的问题,当test未被写入数据时,是不会显示的(未被真实创建),这里只做基本的了解,后面要插入数据主要是通过python进行操作
5) 数据库表/集合:collection
概念
集合就是 MongoDB 文档组
集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性
注意,集合命名问题
集合名不能是空字符串""
集合名不能含有\0字符(空字符),这个字符表示集合名的结尾
集合名不能以"system."开头,这是为系统集合保留的前缀
用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$
示例
后期主要是通过图形界面进行查看,也就是刚刚下载的robot3t
6) 数据字段/域:field
7) 索引:index
8) 主键:primary key
MongoDB自动将_id字段设置为主键
MongoDB数据类型
String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的
Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位
Boolean 布尔值。用于存储布尔值(真/假)
Double 双精度浮点值。用于存储浮点值
Timestamp 时间戳。记录文档修改或添加的具体时间
Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
Array 用于将数组或列表或多个值存储为一个键。
Object 用于内嵌文档。
Null 用于创建空值。
Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
Object ID 对象 ID。用于创建文档的 ID。
Binary Data 二进制数据。用于存储二进制数据。
Code 代码类型。用于在文档中存储 JavaScript 代码。
Regular expression 正则表达式类型。用于存储正则表达式。
我们后续如何使用mongodb?
- python做数据采集 → 存储数据进入mongodb
- 通过pymongo,调用mongo数据进行分析、处理
- 分析处理完毕后,可以通过python导出本地文件,或者以新的集合继续存入mongodb
- 通过MongoDB可视化工具robo3t,查看数据库的数据等
更多推荐
【python爬虫专项(15)】MongoDB快速入门
发布评论