0 之前我们maogoDB用的是在线的mlab

在线他们帮我们做好了model 也就是那个schma

其实python也有类似的包 帮我们定义这些model

但是呢

我们自己来做吧

用一个传统的意义上mongoDB 就是 insert select来操作数据库

就是在不用其他类库 定义的model

我们如何操作数据库

我们这次用本地mongoDB

因为我们以后要做网络爬虫

这么爬下来的数据都会放在mongoDB里面储存

会很多 如果我们用mlab 那么将来把数据导出的时候就很不方便

所以 建议部署在本地

用法其实和mlab没啥区别

去官网https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

安装提示4步安装

当然也可以直接下载下来 解压缩安装

都可

第三种方法(我安装的这个,我是因为网络原因)

https://www.howtoing.com/how-to-install-mongodb-on-ubuntu-18-04

安装完成

新版本执行下面命令

因为是按第三种 安装的老版本的所以我的start命令不一样 具体看https://www.howtoing.com/how-to-install-mongodb-on-ubuntu-18-04

sudo systemctl start mongodb

本地mangodb自带工具mongo

显示现有的数据库

切换数据库

数据库有很多表(collections)

use这个命令除了可以切换数据库 还能创建数据库 如果有就切换到 没有就创建

但是如果你没插数据进去 他不会创建 必须有数据

我们现在弄点数据倒进数据库 插两条条数据

我们发现insert只能插一条,一条一条的插

我们再来一条

这里有个导入导出数据方便的工具 注意再是CMD命令行里面打命令 并不是在mongo shell里面

mongoexport

mongoimport --db tap-news --collection news --drop week6_demo_news.json

导入数据到数据库 并制定导入数据文件名称

drop是存在的话 就替代

mongoexport --db tap-news --collection news --out week6_demo_news.json

从数据库导出数据并命名

如何删除数据库

use +数据库名  切换到某个数据库然后执行

db.dropDatabase删除数据库

下面使用python操作mongodb

安装一个库 为了以后别人方便安装 我们写到一个配置文件里面

我们这个pymongo想单独独立出来 谁用 就来调用就行了

所以我们

创建工具文件夹

主要为了复用方便(解耦)

这个MongoClien类t实现了维持一个连接数为10的连接池(为了数据库性能)

这样保证了单例模式

不管有多少模块import我们这个client 自始至终我们只有一个连接连接到mongodb

增删改查可以在这定义函数

下面我们去测试吧

看能不能连上数据库

新建一个测试文件

大小写敏感

那么我们改一下看看

然后 我们将注释放开再看看

发现demo(collections)木有了 drop了

这验证了可以client操作数据库

最新文章

  1. angularjs的$on、$emit、$broadcast
  2. Altium Designer自动更新——解决方法
  3. HDU 1312 Red and Black --- 入门搜索 BFS解法
  4. .Net开源数据库设计工具Mr.E For Linq (EF 6.1) 教程(二)级联删除和触发器
  5. php-redis扩展模块安装记录
  6. SuSE(SLES)安装配置syslog-ng日志server,可整合splunk
  7. java socket编程 初级 服务器端和客户端 通信
  8. Python2和Python3中除法操作/的不同
  9. js实现换肤效果
  10. 文件A包含文件B,找出A不包含B的那部分
  11. 完美解决win10家庭版本系统无法远程连接问题
  12. 第三十五篇-AppBarLayout的使用
  13. RS485 VS 20mA 电流环
  14. Docker入门 - 001 CentOS Docker 安装
  15. Unity3D引擎中特殊的文件夹
  16. django 设置不带后缀的访问路径
  17. Multi-target tracking by Lagrangian relaxation to min-cost network flow
  18. marquee 标签的使用介绍
  19. Unity中容易被忽略的小技巧
  20. 2018软工实践—Beta冲刺(5)

热门文章

  1. 第11课 std::bind和std::function(2)_std::bind绑定器
  2. 第11章 拾遗5:IPv6和IPv4共存技术(1)_双栈技术和6to4隧道技术
  3. delphi2010 域名转换IP
  4. Structrued Streaming业务数据实时分析
  5. 二、Html5元素、属性、格式化
  6. DIV左、中、右三列布局的各类情况说明
  7. 微信小程序内容组件图标 icon
  8. Vuejs自定义全局组件--loading
  9. centos磁盘挂载|centos虚拟机硬盘不够怎么办?|centos虚拟机硬盘的扩展
  10. JavaScript取消默认控件并添加新控件(DOM编程艺术第11章)