MangoDB快速入门
最近爬虫获取到的数据想存储到MongoDB中,先入门下咯$\color{red}{MangoDB}$
MongoDB Cloud is a platform for building modern, data-driven applications. Start with the data foundation of MongoDB, delivered as a fully managed cloud database, and get developing quickly with our application services.
什么是MongoDB
MangoDB
是一款基于C++
开发的开源文档数据库,在数据库中数据是通过key-value
的形式存储的,类似Python
中的字典一样。
在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB
将数据存储为一个文档,数据结构由键值(key=>value)
对组成。MongoDB
文档类似于 JSON
对象。字段值可以包含其他文档,数组及文档数组。
概念
数据库中常见的的概念在SQL
和MongoDB
中的对比
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
通过下面的例子进行解释
安装
管理包安装
自己的系统是macOS
,通过包管理工具Homebrew
来安装
1 | brew update |
手动安装
安装
1 | cd ~/book/program # 指定安装路径 |
- 在路径
~/book/program/mongodb/bin
文件夹下面有各个重要的文件。
手动添加2个配置文件:
- log
- data
- 在配置文件
~book/program/mongodb/bin/mongodb.conf
中写入下面的内容:
1 | systemLog: |
启动
在终端中先进入到MongoDB的文件夹中,再进行启动MongoDB:
1 | cd book/program/mongodb/bin |
启动之后控制台不会出现任何信息,因为日志Log已经写入到了文件中
windows安装
- 从MongoDB的官网下载Windows版本的MongoDB,双击各种next,进行下载安装
- 安装路径选择在C:\Program Files\MongoDB\
- 进入到
C:\Program Files\MongoDB\bin
中,将看到的全部文件复制到步骤4中 - 在C盘中创建
C:\MongoDB
文件夹,粘贴步骤3中的文件;同时创建2个文件夹:Data和Log - 使用记事本创建配置文件
C:\MongoDB\mongod.conf
,内容和上面的相同
1 | systemLog: |
- 输入
cmd
,在命令窗口中启动
1 | mongod.exe --config mongod.conf |
管理工具
安装
常用的管理软件是RoboMongo
,现在变成了Robo 3T
,直接在官网上下载安装
连接
数据存储
在MongoDB中,数据是按照库database—集合collection—文档document
的层级方式存储的,通过Python进行类比
- 文档:相当于是字典
- 集合:相当于是包含了很多字典的列表
- 库:相当于是一个大字典;大字典中每个键值对都对应了一个集合
文档document
文档是MongoDB中数据的基本单元,类似于关系型数据库中的行
,它是键值对的一个有序集。
每个文档都有一个特殊的_id
,这个键在文档所属的集合中是唯一的。
MongoDB中键值对不但区分类型,也区分大小写
1 | {"foo": 3} |
下面两个也是不同的
1 | {"Foo": 3} |
集合collection
集合可以看做是一个拥有动态模式的表
。MongoDB的一个实例可以拥有多个相互独立的数据库,每个数据库都拥有自己的集合
PyMongo
PyMongo是Python对MongoDB操作的接口包,能够实现对MongoDB的增删改查和排序等操作
安装
1 | pip install pymongo |
连接
- 使用
pymongo
初始化数据库连接
1 | # 1-直接连接本地 |
初始化数据库
通常由两种方式来初始化与集合。
方式1:
Chart6和spider都不是变量名,是库和集合的名字
1 | from pymongo import MongoClient |
方式2:
方括号中指定库名和集合名字
1 | from pymongo import MongoClient |
当存在多个数据库或者集合名字的时候,通过方式2,以列表的形式使用循环来操作
1 | database_name_list = ['db1','db2','db3'] |
访问权限
默认情况下,MongoDB只允许本机访问,不允许外网访问。如果需要外网访问,修改配置文件:
1 | systemLog: |