mongodb作业

1.创建一个数据库 名字grade

powershell 复制代码
use grade

2.数据库中创建一个集合名字 class

powershell 复制代码
db.createCollection("class")

3.集合中插入若干数据

powershell 复制代码
db.class.insert([{name:"zhang",age:10,sex:'m',hobby:['a','b','c']}])

4.查找

查看班级所有人信息

powershell 复制代码
db.class.find()

查看班级中年龄为8岁的学生信息

powershell 复制代码
db.class.find({age:8})

查看年龄大于10岁的学生信息

powershell 复制代码
db.class.find({age:{$gt:10}})

查看年龄在 4---8岁之间的学生信息

powershell 复制代码
db.class.find({age:{$gt:4,$lte:8}})

找到年龄为6岁且为男生的学生

powershell 复制代码
db.class.find({age:6,sex:'m'})

找到年龄小于7岁或者大于10岁的学生

powershell 复制代码
db.class.find({$or:[age:{$lt:7},age:{$gt:10}]})

找到年龄是8岁或者11岁的学生

powershell 复制代码
db.class.find({age:{$in:[8,11]}})

找到兴趣爱好有两项的学生

powershell 复制代码
db.class.find({hobby:{$size:2}})

找到兴趣爱好有draw的学生

powershell 复制代码
db.class.find({hobby:"draw"})

找到既喜欢画画又喜欢跳舞的学生

powershell 复制代码
db.class.find({hobby:{$all:["draw","dance"]}})

统计爱好有三项的学生人数

powershell 复制代码
db.class.find({hobby:{$size:3}}).count()

找出本班年龄第二大的学生

powershell 复制代码
db.class.find().sort({age:-1}).skip(1).limit(1)

查看学生的兴趣范围

powershell 复制代码
db.class.distinct('hobby')

将学生按年龄排序找到年龄最大的三个

powershell 复制代码
db.class.find().sort({age:-1}).limit(3)

删除所有 年级大于12或者小于4岁的学生

powershell 复制代码
remove({$or:[{age:{$gt:12}},{age:{$lt:4}}]})

5.增加、更新、删除、统计

将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画

powershell 复制代码
{$set:{age:8,hobby:['dance','draw']}}

追加小明兴趣爱好 唱歌

powershell 复制代码
{$push:{hobby:'sing'}}

小王兴趣爱好增加 吹牛 打篮球

powershell 复制代码
{$pushAll:{hobby:['吹牛','basketball']}}

小李增加爱好,跑步和唱歌,但是不要和以前的重复

powershell 复制代码
{$addToSet:{hobby:{$each:['running','sing']}}}

该班所有同学年龄加1

powershell 复制代码
update({},{$inc:{age:1}},false,true)

删除小明的sex属性

powershell 复制代码
{$unset:{sex:0}}

删除小李兴趣中的第一项

powershell 复制代码
{$pop:{hobby:-1}}

将小红兴趣中的画画爱好删除

powershell 复制代码
{$pull:{hobby:'draw'}}

增加分数域 score:{'chinese':88,'english':78,'math':98}

按照性别分组统计每组人数

powershell 复制代码
 aggregate({$group:{_id:'$sex',num:{$sum:1}}})

按照姓名分组,过滤出有重名的同学

powershell 复制代码
aggregate([{$group:{_id:'$name',num:{$sum:1}}},{$match:{num:{$gt:1}}}])

统计每名男生的语文成绩

powershell 复制代码
aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])

将女生按照英语分数降序排列

powershell 复制代码
aggregate([{$match:{sex:'w'}},{$sort:{'score.english':-1}}])
相关推荐
Tisfy17 分钟前
LeetCode 2058.找出临界点之间的最小和最大距离:遍历+遇到极值则更新(这种题谁空间复杂度不是O(1)啊)
linux·数据库·leetcode·链表·题解·模拟·遍历
liulilittle22 分钟前
REALITY 代理隧道的有效检测方法: 被动、主动与确定性三层实证研究
linux·服务器·网络·网络协议·安全·网络安全·通信
邪修king1 小时前
Re:Linux 系统篇(十五):进程篇(四):进程切换深度解析 —— CPU 寄存器、进程上下文与切换全流程万字详解
linux·运维·服务器
高亦真1 小时前
今天是学习嵌入式的第33天
linux·学习·算法
cuijiecheng20181 小时前
Rocky Linux 安装 libltc、ltc-tools 和 ltcdump
linux
BlueAsia_Lab1 小时前
BQB 认证执行标准是什么?核心条款通俗解读
linux·运维·网络
小小、码农1 小时前
【网络】套接字(Socket)编程——TCP版
linux·服务器·网络·c++·网络协议·tcp/ip
邪修king2 小时前
Re:Linux 系统篇(十六):进程篇(五):O (1) 调度算法深度解析 —— 优先级数组、位图优化与活跃 / 过期双队列
linux·运维·算法
苏三福2 小时前
ubuntu 在文件管理系统中用sftp打开远程文件空白的问题解决
linux·运维·ubuntu
邪修king2 小时前
Re:Linux 系统篇(十四):进程篇(三):进程退出与特殊进程 —— 僵尸 Z 状态、孤儿进程深度解析
linux·运维·服务器