【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?
  1. python做数据采集 → 存储数据进入mongodb
  2. 通过pymongo,调用mongo数据进行分析、处理
  3. 分析处理完毕后,可以通过python导出本地文件,或者以新的集合继续存入mongodb
  4. 通过MongoDB可视化工具robo3t,查看数据库的数据等
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lys_828

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值