week6 10 后端backend server和mongoDB通信

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操作数据库

原文地址:https://www.cnblogs.com/PoeticalJustice/p/9570352.html