• python 使用mongodb数据库


    1,数据库安装

          代码下载路径https://www.mongodb.com/download-center#community

          选择自己需要的tar包下载,我下载了 mongodb-linux-x86_64-ubuntu1804-4.0.10.tgz      

          tar -zxvf mongodb-linux-x86_64-ubuntu1804-4.0.10.tgz -C //usr/local # 解压到/usr/local 目录下

      mv  mongodb-linux-x86_64-ubuntu1804-4.0.10/ /usr/local/mongodb # 修改名称
    在/etc/profile 中添加环境变量
    export PATH=/usr/local/mongodb/bin:$PATH
    sh /etc/profile 让环境变量生效
    ok 数据库安装完毕了

    2,启动数据库
    启动数据库服务命令:
      ./mongod  --dbpath=/home/andrew/mongodb  
      --dbpath指定了数据库存放路径。

    启动数据库后台管理程序
    mongo,它是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境
      ./mongo
    之后我们可以做些测试了:
    比如:
      db.star.insert({x:10})  向集合star中插入数据{x:10},这时候可以观察/home/andrew/mongodb目录下有文件变化。
    其他的测试不再这里说了

    3,安装 pymongo
    Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接
    安装命令如下:
    pip install pymongo

    4, 数据库增删改查询操作代码封装
    import pymongo

    mydb=None

    def db_mongodb_init(url):
    global mydb
    myclient = pymongo.MongoClient(url)
    dblist = myclient.list_database_names()
    print("dblist:",dblist)
    mydb = myclient["Print_Analysis"]
    log_info = mydb["log_info"]
    case_info = mydb["case_info"]

    ####colletion_name 集合的名字
    ####document 文档数据
    ####many True 表示多条文档数据
    def db_mongodb_insert(colletion_name,document,many):
        global mydb

    col=mydb[colletion_name]
        if many:
    ret=col.insert_many(document)
    print("inserted_ids",ret.inserted_ids)
    else:
    ret=col.insert_one(document)
    print("inserted_id", ret.inserted_id)
    return ret


    ###query : update的查询条件,类似sql update查询内where后面的。
    ###update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
    def db_mongodb_updata(colletion_name,query,update,many):
    col = mydb[colletion_name]
    if many:
    col.update_many(query,update)

    else:
    col.update_one(query,update)


    ###query :可选,使用查询操作符指定查询条件
    ###projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
    def db_mongodb_query(colletion_name,query,projection,many):
        global mydb
        col = mydb[colletion_name]
    if many:
    if projection==None and query==None:
    col.find()
    elif projection == None:
    col.find(query)
    else:
    col.find(query, projection)
    else:
    if projection==None and query==None:
    col.find_one()
    elif projection == None:
    col.find_one(query)
    else:
    col.find_one(query, projection)

    def db_mongodb_delete(colletion_name,query,many):
        global mydb

    col = mydb[colletion_name]
        if many:
    col.delete_many(query)
    else:
    col.delete_one(query)






  • 相关阅读:
    memcache的最佳实践方案。
    ehcache memcache redis 三大缓存男高音
    微服务-----(网站架构演变)
    分布式job-任务调度(一)
    rocketmq(三 java操作rocket API, rocketmq 幂等性)
    rocketMQ(二 )Centos7 集群
    go基础三 数组,切片,map,list
    go语言基础二 函数 ,递归函数 ,指针
    go语言基础一:数据类型,变量和常量,类型转化
    Spring AOP 学习(一) 代理模式
  • 原文地址:https://www.cnblogs.com/huanhuaqingfeng/p/11188024.html
Copyright © 2020-2023  润新知