MongoDB安装及使用

安装参考教程:
https://dblab.xmu.edu.cn/blog/3980/

作业要求:
在电脑中完成MongoDB的安装,并通过MongoDB Shell新建一个以自己名字(英文全拼,例如Sunjing)的数据库,并创建一个名为“grade”的集合,
在该集合中插入自己上学期五门课程的成绩数据,具体包括课程名称,分数,任课教师,考试时间(或者其他相关信息)。并依次完成对数据进行增、删、改、查等基本操作。

1. 创建数据库并切换到 TongNing 数据库

// 切换到 TongNing 数据库(如果不存在会自动创建)
use TongNing

2. 创建 grade 集合并插入数据

// 插入五门课程的成绩数据
db.grade.insertMany([
  {
    courseName: "计算机网络",
    score: 60,
    teacher: "郭琪",
    type: "必修",
    credit: 3
  },
  {
    courseName: "WEB应用开发技术", 
    score: 60,
    teacher: "孙静",
    type: "任选",
    credit: 2
  },
  {
    courseName: "数据库原理",
    score: 60,
    teacher: "杨光", 
    type: "必修",
    credit: 3
  },
  {
    courseName: "概率论与数理统计",
    score: 60,
    teacher: "宋飞",
    type: "必修", 
    credit: 4
  },
  {
    courseName: "Python程序设计",
    score: 60,
    teacher: "刘嘉",
    type: "任选",
    credit: 2
  }
])

3. 查询操作(查)

// 查询所有成绩
db.grade.find()

// 格式化显示查询结果
db.grade.find().pretty()

// 查询必修课程
db.grade.find({type: "必修"})

// 查询90分以上的课程
db.grade.find({score: {$gt: 90}})

// 按分数降序排列
db.grade.find().sort({score: -1})

// 统计课程数量
db.grade.countDocuments()

4. 插入操作(增)

// 添加一门新课程
db.grade.insertOne({
  courseName: "操作系统",
  score: 88,
  teacher: "张伟",
  type: "必修",
  credit: 3
})

// 验证新课程已添加
db.grade.find({courseName: "操作系统"})

5. 更新操作(改)

// 将 WEB应用开发技术 的分数改为 90
db.grade.updateOne(
  {courseName: "WEB应用开发技术"},
  {$set: {score: 90}}
)

// 验证更新结果
db.grade.find({courseName: "WEB应用开发技术"})

// 为所有课程添加学期字段
db.grade.updateMany(
  {},
  {$set: {semester: "2024-2025学年第一学期"}}
)

6. 删除操作(删)

// 删除 Python程序设计 课程
db.grade.deleteOne({courseName: "Python程序设计"})

// 验证删除结果
db.grade.find({courseName: "Python程序设计"})

// 删除所有任选课程
db.grade.deleteMany({type: "任选"})

7. 高级查询

// 查询平均分
db.grade.aggregate([
  {
    $group: {
      _id: null,
      averageScore: {$avg: "$score"}
    }
  }
])

// 查询最高分和最低分
db.grade.aggregate([
  {
    $group: {
      _id: null,
      highestScore: {$max: "$score"},
      lowestScore: {$min: "$score"}
    }
  }
])

// 按课程类型统计平均分
db.grade.aggregate([
  {
    $group: {
      _id: "$type",
      averageScore: {$avg: "$score"},
      courseCount: {$sum: 1}
    }
  }
])
posted @ 2025-10-13 21:13  雨花阁  阅读(9)  评论(0)    收藏  举报