《非结构化数据存储与分析》实验七:python 操作mongodb

一、实验名称

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数据库的操作,并在实验中进行了实践应用,整体收获很大,谢谢马老师!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值