pymongo的使用与示例
使用pymongo模块访问MongoDB数据库可分为以下几步:
(1) 创建一个MongoClient对象,与MongoDB数据库建立连接。
(2) 使用上个步骤的连接创建一个表示数据库的DataBase对象。
(3) 使用上个步骤的数据库创建一个表示集合的Collection对象。
(4) 调用Collection对象的方法,对集合执行某些常见操作,包括增加、删除、修改和查询文档等。
下面按照以上介绍的流程,通过一个示例分步骤为大家演示如何使用pymongo操作MongoDB数据库,具体内容如下。
(1)导入pymongo模块,创建与本地MongoDB数据库的连接,代码如下。
import pymongo
# 创建连接对象
client = pymongo.MongoClient(host='localhost', port=27017)
(2)创建一个数据库school和一个集合student,代码如下。
# 创建数据库school
db_obj = client.school
# 创建集合student
coll_obj = db_obj.student
(3)向集合student中分别插入一条文档和多条文档,每个文档中都有3个字段,分别是“学号”、“姓名”和“性别”,插入完之后输出“集合中共有**个文档”,代码如下。
# 向集合student中插入文档
coll_obj.insert_one({'学号':1, '姓名':'小明', '性别':'男'})
coll_obj.insert_many([{'学号': 2, '姓名': '小兰', '性别': '女'},
{'学号': 3, '姓名': '小花', '性别': '女'},
{'学号': 4, '姓名': '小刚', '性别': '男'},
{'学号': 5, '姓名': '小志', '性别': '男'},
{'学号': 6, '姓名': '小白', '性别': '男'}])
print('集合中共有%d个文档' % coll_obj.count_documents({}))
(4)将字段“学号”为6的文档中字段“性别”对应的值修改为“女”,代码如下。
# 更新集合student中的一条文档
coll_obj.update_one({'学号': 6},{'$set':{'性别': '女'}})
(5)将集合中出现的第一条字段“性别”对应的值为“女”的文档删除,并在删除后输出“集合中共有**个文档”,代码如下。
# 删除集合student中的一条文档
coll_obj.delete_one({'性别':'女'})
print('集合中共有%d个文档' % coll_obj.count_documents({}))
(6)查询集合中所有字段“性别”对应值为“女”的文档,并遍历输出了每个匹配的文档,代码如下。
# 查询集合student中的性别为女的文档
result = coll_obj.find({'性别':'女'})
for doc in result:
print(doc)
(7)运行程序,程序执行的结果如下所示:
集合中共有6个文档
集合中共有5个文档
{'_id': ObjectId('5cc6a304e73b3c756ce03bd2'), '学号': 3,
'姓名': '小花', '性别': '女'}
{'_id': ObjectId('5cc6a304e73b3c756ce03bd5'), '学号': 6,
'姓名': '小白', '性别': '女'}