与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