一、实验名称
python操作mongodb
二、实验目的
完成python操作mongodb
三、实验环境
OS:Windows
Python3
MongoDB:3.4.4
四、实验步骤
题目一:编写python程序
1.首先下载pymongo包:
因我的mongodb版本号是3.4.4,此处下载版本号为3.4.0的pymongo包
2.创建python文件,命名为 姓名缩写_pyinsertData.py
建立gx_pyinsertData.py文件
3.写代码,代码功能要求:
连接27017端口的MongoDB,创建数据库student,在数据库中建立姓名缩写_info 表,并在表中写入如下形式的文档:
{
"name": name,
"age": age,
"province": province,
"subject": [
{"name": "chinese", "score": score},
{"name": "math", "score": score},
{"name": "english", "score": score},
{"name": "chemic", "score": score},
]}
随机数可使用:randint()方法,引入from random import randint。
插入100条如上的文档记录,记录中数值的生成方式为:
name:每一个name,从姓:[]"zhou ", "wu ", “zheng”和名["chao","hao", "gao", "qi gao", "hao hao", "gao gao", "chao hao", "ji gao", "ji hao", "li gao", "li hao"] 中分别随机抽取一个进行组合,形成name字段;
age:[1-30]之间的随机整数;
province:从["guang dong", "guang xi", "shan dong", "shan xi", "he nan"]中随机抽取一个,形成province;
subject中的score使用[0,100]间的随机整数产生。
①连接27017端口,创建数据库guoxu_student,在数据库中建立集合gx_info,初始状态下gx_info为一个空表,只有字段_id。
②在gx_pyinsertData.py中编写代码如下:
4.执行py代码
5.在mongodb shell中查看插入的数据
①查看插入的每条数据
显示subject字段的数据如下:
点开列号为0、1、2、3的字段,分别查看各科成绩:
②查看插入的数据总量:100条
题目二:在mongodb shell终端查询
(1)查询province为guang dong的学生的平均年龄。
(2)查询所有省份的平均年龄。
①分别查询5个省份的平均年龄
②查询5个省份的所有学生的平均年龄
五、实验总结
此次实验我完成了使用python操作mongodb的实验,实验中涉及到对python代码和mongodb命令的综合运用,因为大二上学习过python,在参考马老师发的Python_mongodb.pdf文件后,此次实验顺利完成,实验中也并未出现报错现象。
使用python操作mongodb数据库时,和之前连接MySQL数据库、Oracle数据库等的方法都较为相似,需要指定数据库所在的主机ip和端口号,因为我在启动mongodb时未指定端口号,它默认用的是27017的端口号,不同数据库的默认端口号也不相同,但指定ip和端口号后一般就能顺利连接上数据库。
通过此次实验我也学到了很多对mongdb数据库的操作,并在实验中进行了实践应用,整体收获很大,谢谢马老师!