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操作数据库
最新文章
- angularjs的$on、$emit、$broadcast
- Altium Designer自动更新——解决方法
- HDU 1312 Red and Black --- 入门搜索 BFS解法
- .Net开源数据库设计工具Mr.E For Linq (EF 6.1) 教程(二)级联删除和触发器
- php-redis扩展模块安装记录
- SuSE(SLES)安装配置syslog-ng日志server,可整合splunk
- java socket编程 初级 服务器端和客户端 通信
- Python2和Python3中除法操作/的不同
- js实现换肤效果
- 文件A包含文件B,找出A不包含B的那部分
- 完美解决win10家庭版本系统无法远程连接问题
- 第三十五篇-AppBarLayout的使用
- RS485 VS 20mA 电流环
- Docker入门 - 001 CentOS Docker 安装
- Unity3D引擎中特殊的文件夹
- django 设置不带后缀的访问路径
- Multi-target tracking by Lagrangian relaxation to min-cost network flow
- marquee 标签的使用介绍
- Unity中容易被忽略的小技巧
- 2018软工实践—Beta冲刺(5)
热门文章
- 第11课 std::bind和std::function(2)_std::bind绑定器
- 第11章 拾遗5:IPv6和IPv4共存技术(1)_双栈技术和6to4隧道技术
- delphi2010 域名转换IP
- Structrued Streaming业务数据实时分析
- 二、Html5元素、属性、格式化
- DIV左、中、右三列布局的各类情况说明
- 微信小程序内容组件图标 icon
- Vuejs自定义全局组件--loading
- centos磁盘挂载|centos虚拟机硬盘不够怎么办?|centos虚拟机硬盘的扩展
- JavaScript取消默认控件并添加新控件(DOM编程艺术第11章)