zoukankan      html  css  js  c++  java
  • mongo与python交互

    与python交互

    一、准备
    1、环境
    进入虚拟环境py2_db,安装包pymongo
    workon py2_db
    pip install pymongo

    2、引入模块pymongo
    from pymongo import *

    3、主要提供如下对象用于进行交互
    MongoClient对象:用于与MongoDB服务器建立连接
    DataBase对象:对应着MongoDB中的数据库
    Collection对象:对应着MongoDB中的集合
    Cursor对象:查询方法find()返回的对象,用于进行多行数据的遍历

    MongoClient对象
    使用init方法创建连接对象
    client=MongoClient('主机ip',端口)

    Database对象
    通过client对象获取获得数据库对象
    db=client.数据库名称

    Collection对象
    通过db对象获取集合对象
    col=db.集合名称

    Cursor对象
    当调用集合对象的find()方法时,会返回Cursor对象
    结合for...in...遍历cursor对象

    4、主要方法如下
    insert_one:加入一条文档对象
    insert_many:加入多条文档对象
    find_one:查找一条文档对象
    find:查找多条文档对象
    update_one:更新一条文档对象
    update_many:更新多条文档对象
    delete_one:删除一条文档对象
    delete_many:删除多条文档对象


    二、python交互代码
    1、增加
    方法insert_one接收一个字典作为参数,表示插入一条文档
    方法insert_many接收一个列表作为参数,列表中的元素为字典,表示插入多条文档
    创建mongodb_insert.py文件,代码如下

    #coding=utf-8
    from pymongo import *
    
    if __name__=='__main__':
        try:
            #创建连接对象
            client=MongoClient(host='localhost',port=27017)
            #获得数据库,此处使用python数据库
            db=client.python
            #向集合stu中插入一条文档
            db.stu.insert_one({'name':'abc','gender':True})
            #如果插入成功则提示ok
            print 'ok'
        except Exception as e:
            print e
    

      

    2、查询
    方法find_one()返回满足条件的文档集中第一条数据,类型为字典
    方法find()返回满足条件的所有文档,类型为Cursor对象,可以使用for...in遍历,每项为字典对象
    创建mongodb_find.py文件,代码如下

    #coding=utf-8
    from pymongo import *
    
    if __name__=='__main__':
        try:
            #创建连接对象
            client=MongoClient(host='localhost',port=27017)
            #获得数据库,此处使用python数据库
            db=client.python
            #查询一条文档
            #result=db.stu.find_one()
            #print result
    
            #查询多条文档
            result=db.stu.find({'hometown':'大理'})
            for item in result:
                print '%s--%s'%(item['name'],item['hometown'])
        except Exception, e:
            print e
    

      

    3、修改
    方法update_one()修改满足条件的文档集中的第一条文档
    方法update_many()修改满足条件的文档集中的所有文档
    注意:使用$set操作符修改特定属性的值,否则会修改整个文档
    创建mongodb_update.py文件,代码如下

    #coding=utf-8
    from pymongo import *
    
    if __name__=='__main__':
        try:
            #创建连接对象
            client=MongoClient(host='localhost',port=27017)
            #获得数据库,此处使用python数据库
            db=client.python
            #更新满足条件的第一条文档
            #db.stu.update_one({'gender':False},{'$set':{'name':'hehe'}})
    
            #更新满足条件的所有文档
            db.stu.update_many({'gender':True},{'$set':{'name':'haha'}})
            print 'ok'
        except Exception as e:
            print e
    

      

    4、删除
    方法delete_one()删除满足条件的文档集中第一条文档
    方法delete_many()删除满足条件的所有文档
    创建mongodb_delete.py文件,代码如下

    #coding=utf-8
    from pymongo import *
    
    if __name__=='__main__':
        try:
            #创建连接对象
            client=MongoClient(host='localhost',port=27017)
            #获得数据库,此处使用python数据库
            db=client.python
            #删除满足条件的第一条文档
            #db.stu.delete_one({'gender':False})
    
            #删除满足条件的所有文档
            db.stu.delete_many({'gender':True})
            print 'ok'
        except Exception as e:
            print e
    

      

  • 相关阅读:
    单例设计模式
    网络编程--Socket与ServerSocket
    JDBC连接Oracle数据库
    ObjectInputStream与ObjectOutputStream
    MyBatis的SQL语句映射文件详解(二)----增删改查
    MyBatis的SQL语句映射文件详解
    MyBatis+Spring实现基本CRUD操作
    通俗解释IOC原理
    Git菜鸟
    hibernate连接oracle数据库
  • 原文地址:https://www.cnblogs.com/andy9468/p/12614972.html
Copyright © 2011-2022 走看看