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

  • 相关阅读:
    使用Boost Regex 的regex_search进行遍历搜索
    最全的libcurl库资源整理
    curl的http上传文件代码
    boost::property_tree读取解析ini文件--推荐
    UrlDecode
    C++、VC++、MFC网页自动注册、登陆、发帖、留言,QQ注册、QQ申请器源码、注册邮箱源码、自动发帖源码
    DUILIB入门简明教程
    MFC/VC CxImage 简单配置与使用 (完整版)
    几款国产开源的Windows界面库
    C++文件读写详解(ofstream,ifstream,fstream)
  • 原文地址:https://www.cnblogs.com/PoeticalJustice/p/9570352.html
Copyright © 2020-2023  润新知