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"]}}})
相关推荐
難釋懷2 分钟前
Redis数据结构介绍
数据结构·数据库·redis
松涛和鸣5 分钟前
54、DS18B20单线数字温度采集
linux·服务器·c语言·开发语言·数据库
indexsunny23 分钟前
互联网大厂Java面试实战:核心技术与微服务架构解析
java·数据库·spring boot·缓存·微服务·面试·消息队列
合方圆~小文25 分钟前
三目智能监控新标杆
数据库·人工智能·模块测试
神秘的猪头26 分钟前
AI全栈项目 Day 3:不仅是数据库,更是你的“数据堡垒” —— PostgreSQL 硬核入门
数据库·sql·postgresql
天人合一peng30 分钟前
kingbase数据库的
服务器·数据库·oracle
雨季66632 分钟前
系统化方法论与实战案例
数据库
数据库知识分享者小北37 分钟前
从极速复制“死了么”APP,看AI编程时代的技术选型
数据库·阿里云·状态模式·ai编程·supabase
想摆烂的不会研究的研究生42 分钟前
并发场景——接口幂等性设计
数据库·redis·后端·缓存
星火开发设计1 小时前
关系代数:数据库查询的数学基石与实战解析
数据库·学习·oracle·知识·关系代数