MongoDB综合实战篇(超容易)

一、题目引入

在MongoDB的gk集合里插入以下数据:

用语句完成如下功能:

(1)查询张三同学的成绩信息

(2)查询李四同学的语文成绩

(3)查询没有选化学的同学

(4)统计语文成绩的平均分

(5)查询英语成绩最高的同学

(6)求每个同学语数英三门课的总成绩

二、解题方案

1.表格信息插入

sql 复制代码
db.gk.insert({sno:"1001",sname:"zhangsan",score:  {yuwen:100,shuxue:110,yingyu:100,wuli:99,huaxue:77,shengwu:80},  lianxi:{shouji:[133,44],vx:"djks"}})
db.gk.insert({sno:"1002",sname:"lisi",score:  {yuwen:120,shuxue:110,yingyu:110,wuli:44,dili:77,lishi:80},  lianxi:{shouji:[133,44],vx:"djks"}})

(1)查询张三同学的成绩信息

sql 复制代码
db.gk.find({sname:"zhangsan"},{score:1})

(2)查询李四同学的语文成绩

sql 复制代码
db.gk.find({sname:"lisi"},{"score.yuwen":1})

(3)查询没有选化学的同学

sql 复制代码
db.gk.find({"score.huaxue":{$ne:null}})

(4)统计语文成绩的平均分

sql 复制代码
db.gk.aggregate([{$group:{_id:"",avgyuwen:{$avg:"$score.yuwen"}}}])

(5)查询英语成绩最高的同学

sql 复制代码
db.gk.find().sort({"score.yingyu":-1}).limit(1)

(6)求每个同学语数英三门课的总成绩

sql 复制代码
db.gk.aggregate({$project:{_id:0,sno:1,total:{$add:["$score.yuwen","$score.shuxue","$score.yingyu"]}}})
相关推荐
junnhwan3 分钟前
【苍穹外卖笔记】Day04--套餐管理模块
java·数据库·spring boot·后端·苍穹外卖·crud
一枚正在学习的小白20 分钟前
PG数据文件位置迁移
linux·运维·服务器·数据库
真的想不出名儿37 分钟前
上传头像到腾讯云对象存储-前端基于antdv
java·数据库·腾讯云
Dreams_l1 小时前
初识redis(分布式系统, redis的特性, 基本命令)
数据库·redis·缓存
数据库知识分享者小北1 小时前
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
数据库·后端
点亮一颗LED(从入门到放弃)1 小时前
SQLite3数据库——Linux应用
linux·数据库·sqlite
济南java开发,求内推2 小时前
mongodb一个服务器部署多个节点
服务器·数据库·mongodb
武子康2 小时前
Java-148 深入浅出 MongoDB 聚合操作:$match、$group、$project、$sort 全面解析 Pipeline 实例详解与性能优化
java·数据库·sql·mongodb·性能优化·系统架构·nosql
程序猿(雷霆之王)3 小时前
MySQL——复合查询
数据库·mysql
IT 小阿姨(数据库)3 小时前
PostgreSQL etcd 集群介绍
运维·数据库·sql·postgresql·centos·etcd