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

  

原文地址:https://www.cnblogs.com/andy9468/p/12614972.html