mongodb导入bson文件_Python爬虫进阶教程(七):MongoDB数据库
MongoDB
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。具有高性能、高可用性和自动扩展性。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象的BSON。字段值可以包含其他文档,数组及文档数组。MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
安装MongoDB
MongoDB支持多种安装方式具体安装可以看官网更多安装方式,我这里只简单介绍源码包安装MongoDB社区版。
# 下载源码包curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.2.tgz# 解压到本地tar -zxvf mongodb-linux-x86_64-3.6.2.tgz# 创建mongodb目录mkdir -p /usr/local/mongodb# 复制到刚刚创建的目录cp -R -n mongodb-linux-x86_64-3.6.2/ /usr/local/mongodb# 定义环境变量,将mongodb bin目录添加进去export PATH=/bin:$PATH# 创建数据目录,默认为/data/db,如果你的目录不是这里,可以用--dbpath参数指定mkdir -p /data/db
安装就完成了,就这么简单。
概念解析
下表给出了各种SQL术语和概念,以及相应的MongoDB术语和概念。
下表展示了一些数据库可执行文件和相应的MongoDB可执行文件,注意这个表没有全部列出来。
从上面的图表可以看出,MongoDB中与关系型数据库不同的地方是引入了collection(集合)、document文档的概念.
文档
文档是MongoDB中数据的基本单元,是MongoDB的核心概念,很类似关系数据库中的行(记录)集合可以被看作没有模式的表(表)
collection(集合)
表示一组MongoDB文档。一个集合相当于一个RDBMS表。一个集合存在于一个数据库中。集合没有强制的模式,一个集合中的文档可以有不同的字段。通常,集合中的所有文档都有类似或相关的目的。
数据库
mongodb中多个文档构成集合,多个集合构成数据库。用于集合的物理容器。每个数据库在文件系统上都有自己的一组文件。一个MongoDB服务器通常有多个数据库。
mongo shell
是MongoDB的一个交互式JavaScript接口。您可以使用mongo shell查询和更新数据,并执行管理操作。
可以看下图理解上面的概念:
与python整合
安装PyMongo
PyMongo 是MongoDB的Python驱动程序,不要安装与PyMongo不兼容的第三方“bson”包。PyMongo有自己的bson软件包;
# 执行python -m pip install pymongo命令即可安装,结果如下:(myenv) [root@ansible myenv]$ python -m pip install pymongoCollecting pymongo Downloading pymongo-3.6.0-cp34-cp34m-manylinux1_x86_64.whl (379kB) 100% |████████████████████████████████| 389kB 73kB/s Installing collected packages: pymongoSuccessfully installed pymongo-3.6.0
安装完成后执行导入模块命令,查看是否成功:
>>> import pymongo>>>
注意:要确定你的机器上安装了MongoDB。
建立连接与操作
# 导入客户端模块>>> from pymongo import MongoClient# 创建客户端实例 >>> client = MongoClient()# 这种方式与上面相同,上面不加参数默认连接的就是localhost和27017端口>>> client = MongoClient('localhost', 27017)# 还可以以URI方式连接>>> client = MongoClient('mongodb://localhost:27017/')
获取数据库
使用client实例中的属性样式访问数据库
>>> db = client.test_database
如果数据库名称是这样的'test-database',那么使用属性样式访问将不起作用,那么可以使用字典样式访问
>>>db = client['test-database']
获取collection(集合)
>>> collection = db.test_collection
或者(使用字典风格访问):
collection = db['test-collection']
文档
MongoDB中的数据使用json样式的文档表示(并存储)。在PyMongo中,我们使用字典来表示文档。例如,以下字典可能用于表示博客文章:
import datetimefrom pymongo import MongoClientclient = MongoClient()post = {"author": "Mike
mongodb导入bson文件_Python爬虫进阶教程(七):MongoDB数据库相关推荐
- python 协程爬虫_Python爬虫进阶教程(二):线程、协程
简介 线程 线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID.程序计数器.寄存器集合和堆栈共同组成.线程的引入减小了程序并发执行时的开销,提高了操作系统的并发 ...
- deepin中mysql数据库的连接_Python爬虫进阶教程(八):MySQL 数据库连接
PyMySQL介绍 PyMySql包含一个纯python的MySQL客户端库.PyMySQL的目标是成为MySQLdb的替代品,并在CPython.PyPy和IronPython上工作. 版本要求 p ...
- 爬虫进阶教程:极验(GEETEST)验证码破解教程
原文链接及原作者:爬虫进阶教程:极验(GEETEST)验证码破解教程 | Jack Cui 一.前言 爬虫最大的敌人之一是什么?没错,验证码![Geetest]作为提供验证码服务的行家,市场占有率还是 ...
- MongoDB 教程七: MongoDB和PHP结合开发
视频:MongoDB 教程七: MongoDB和PHP结合开发 Linux上安装 MongoDB PHP扩展 在终端上安装 你可以在linux中执行以下命令来安装MongoDB 的 PHP 扩展驱动 ...
- oracle导库需要删除原始库,导入dmp文件时,需要删除原有ORACLE数据库实例
导入dmp文件时,对于已存在的数据库实例及表处理方式:删除实例. 1.以管理员身份登录 sqlplus / as sysdba 2.停止实例 shutdown abort; 执行结果:ORACLE i ...
- python 爬视频下载_Python爬虫进阶之爬取某视频并下载的实现
这篇文章我们来讲一下在网站建设中,Python爬虫进阶之爬取某视频并下载的实现.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 这几天在家闲得无聊,意外的挖掘到了一个资源网站 ...
- python教程自带数据库_Python入门进阶教程-数据库操作
Python数据库操作Python版本3.8.0,开发工具:Pycharm 建议本节在掌握了数据库相关操作后再进行学习 MySQL 是最流行的关系型数据库管理系统.本小节通过Python对MySQL数 ...
- 爬虫python入门_python爬虫入门教程有哪些?适合的只有这三个
python爬虫是现在包括以后一种很重要的获取数据的方式. 当然,也因为网络爬虫本身也很有趣,所以很多人了解过一次爬虫后,就产生了浓厚的兴趣. 但是,想学python爬虫的话,应该看什么python爬 ...
- python爬虫requests库_python爬虫基础教程:requests库(二)代码实例
get请求 简单使用 import requests ''' 想要学习Python?Python学习交流群:973783996满足你的需求,资料都已经上传群文件,可以自行下载! ''' respons ...
最新文章
- 图标尺寸规范_作为刚入门的UI设计师,你需要懂哪些设计规范?
- java中日期计算时间差,用java计算日期/时间差
- 中文名称:深入浅出SQL
- CSS3 矢量图标及背景精灵
- [编写高质量代码:改善java程序的151个建议]建议101 Class类
- Android Studio 3.2升级后的编译问题解决办法
- ADO.NET编程(4)根据条件查询DataTable的值
- 雷电模拟器 脚本_精灵盛典辅助雷电模拟器使用教程
- HAWQ技术解析(八) —— 大表分区
- HyperX Alloy Mars2游戏机械键盘,深耕专业电竞机游戏械键盘
- Gradle实践之自定义打包jar+Log开关自动关闭
- Gate 用户手册(一)总体概念
- 记录文件服务器的操作日志
- 00后的文化消费观是怎样的
- 人工智能和大数据分析之间,主要有什么区别
- 兄弟激光打印机错误代码
- 用Java构建股指期货交易系统
- 4 道路、轨道和公交——TransCAD多模式多用户交通分配模型
- 弄懂原型对象和原型链
- DS18B20温度报警系统设计