使用python操作mongodb数据库,并插入随机生成的100条文档


0 环境

OS:Windows10

MongoDB:MongoDB-3.4.4
网盘链接:https://pan.baidu.com/s/1tPUBNjlwqSdhCS89LpS6pQ
提取码:cwhk

可视化界面:mongodb-compass-1.28.4-win32-x64
网盘链接:https://pan.baidu.com/s/1GZA1Y66GnhtitF2OLzFkig
提取码:jz89

(以上软件均可从MongoDB官网免费下载使用)

Python:3.8
pymongo:3.4.0


1 要求

  • 编写python程序,操作MongoDB数据库,连接27017端口的MongoDB,创建数据库student,在数据库中建立姓名缩写_info
    表,并在表中插入100条文档

2 步骤

2.1 环境准备,下载第三方库pymongo-3.4.0

在这里插入图片描述

2.2 创建.py文件,文件命名为:wjw_pyinsertData.py

在这里插入图片描述

2.3 编写程序,实现在student数据库中的wjw_info集合中插入100条指定格式的文档

import pymongo
from pymongo import MongoClient
import random
from random import randint

# 连接MongoDB数据库
client = MongoClient('mongodb://localhost:27017/')

# 指定连接的数据库
db = client.student

# 指定集合
collection = db.wjw_info

# 随机生成100条指定格式的文档
# {
#         "name": name,
#         "age": age,
#         "province": province,
#         "subject": [
#             {"name": "chinese", "score": score},
#             {"name": "math", "score": score},
#             {"name": "english", "score": score},
#             {"name": "chemic", "score": score},
#         ]}

# 姓列表
familyNameList = ["zhou ", "wu ", "zheng "]
# 名列表
nameList = ["chao", "hao", "gao", "qi gao", "hao hao", "gao gao", "chao hao", "ji gao", "ji hao", "li gao", "li hao"]
# 省份列表
provinceList = ["guang dong", "guang xi", "shan dong", "shan xi", "he nan"]

# 插入随机生成的100条文档
for i in range(100):
    # 随机生成文档
    stu = {
        "name": familyNameList[random.randint(0, 2)] + nameList[random.randint(0, 10)],
        "age": random.randint(1, 30),
        "province": provinceList[random.randint(0, 4)],
        "subject": [
            {"name": "chinese", "score": random.randint(0, 100)},
            {"name": "math", "score": random.randint(0, 100)},
            {"name": "english", "score": random.randint(0, 100)},
            {"name": "chemic", "score": random.randint(0, 100)},
        ]}
    # 打印生成的文档
    print(stu)
    # 将生成的文档插入集合中,生成一条插入一条
    result_id = collection.insert_one(stu)
    print(result_id)

print("100条文档已全部插入完成!")

2.4 执行程序,查看执行结果

在这里插入图片描述
然后在图形化界面也可以看到成功插入
在这里插入图片描述

2.5 在MongoDB Shell中查看插入的结果

在这里插入图片描述

2.6 在mongodb shell终端查询

(1)查询province为guang dong的学生的平均年龄
(注:此查询需用到聚合算子aggregate及管道,$match算子是用来过滤文档的,$group算子是用来返回计算结果字段,$avg算子是用来计算某一字段的平均值。)

db.wjw_info.aggregate([
{$match:{"province":"guang dong"}},
{$group:{_id:"$province",avg_age:{$avg:"$age"}}}
])

在这里插入图片描述

(2)查询所有省份的平均年龄

db.wjw_info.aggregate([{$group:{_id:null,avg_age:{$avg:"$age"}}}])

在这里插入图片描述


总结:本文介绍了如何使用Python来操作MongoDB数据库,创建数据库和集合,并向其插入100条随机生成的文档!

  • 编写python程序,操作MongoDB数据库,连接27017端口的MongoDB,创建数据库student,在数据库中建立姓名缩写_info
    表,并在表中插入100条文档

之前写的MongoDB数据库的有关博客:

  1. 安装MongodB数据库及简单操作
  2. MongoDB数据库中对数据库、集合和文档的操作
  3. MongoDB数据库中的文档查询操作

后续会继续更新有关MongoDB数据库的内容!
(注:第26次发文,如有错误和疑问,欢迎在评论区指出!)
——2021.12.13

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨落i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值