MongoDB练习

目录

mongodb作业

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

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

3. 集合中插入若干数据 文档格式如下{name:'zhang',age;10,sex:'m',hobby:['a','b','c']}hobby: draw  sing  dance  basketball football  pingpong  computer 

4. 查找

查看班级所有人信息

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

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

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

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

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

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

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

找到兴趣爱好有draw的学生

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

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

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

查看学生的兴趣范围

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

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

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

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

2. 追加小明兴趣爱好  唱歌

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

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

5. 该班所有同学年龄加1

6. 删除小明的sex属性

7. 删除小李兴趣中的第一项

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

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

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

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

3. 统计每名男生的语文成绩

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


mongodb作业

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

MongoDB Enterprise > use grade

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

MongoDB Enterprise > db.createCollection("class");

3. 集合中插入若干数据 文档格式如下
{name:'zhang',age;10,sex:'m',hobby:['a','b','c']}
hobby: draw  sing  dance  basketball football  pingpong  computer 

MongoDB Enterprise > db.class.insert({name:'xiaozhang',age:6,sex:'m',hobby:['draw','pingpong']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaoxiang',age:9,sex:'m',hobby:['draw','basketball']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaowu',age:10,sex:'m',hobby:['sing','basketball']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaoliu',age:11,sex:'m',hobby:['footboll','dance']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaozeng',age:4,sex:'f',hobby:['footboll','dance']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaohe',age:8,sex:'f',hobby:['sing','dance']})
WriteResult({ "nInserted" : 1 })

4. 查找

查看班级所有人信息

MongoDB Enterprise > db.class.find();
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524d2391dfb21d3ad0777"), "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }
{ "_id" : ObjectId("64b524e1391dfb21d3ad0778"), "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

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

MongoDB Enterprise > db.class.find({age:8});
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

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

MongoDB Enterprise > db.class.find({age:{$gt:10}})
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }

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

MongoDB Enterprise > db.class.find({age:{$gte:4,$lte:8}})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

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

MongoDB Enterprise > db.class.find({age:6,sex:'m'})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }

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

MongoDB Enterprise > db.class.find({$or:[{age:{$lt:7}},{age:{$gt:10}}]})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }

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

MongoDB Enterprise > db.class.find({$or:[{age:8},{age:11}]})
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

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

MongoDB Enterprise > db.class.find({$where:"this.hobby.length == 2"}){ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524d2391dfb21d3ad0777"), "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }
{ "_id" : ObjectId("64b524e1391dfb21d3ad0778"), "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

找到兴趣爱好有draw的学生

MongoDB Enterprise > db.class.find({hobby:'draw'})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524d2391dfb21d3ad0777"), "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }

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

MongoDB Enterprise > db.class.find({hobby:{$all:['dance','draw']}})

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

MongoDB Enterprise > db.class.find({$where:"this.hobby.length == 3"})

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

MongoDB Enterprise > db.class.find({}).sort({age:-1}).skip(1).limit(1)
{ "_id" : ObjectId("64b524e1391dfb21d3ad0778"), "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }

查看学生的兴趣范围

MongoDB Enterprise > db.class.distinct('hobby')
[ "draw", "pingpong", "basketball", "sing", "dance", "footboll" 

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

MongoDB Enterprise > db.class.find({},{_id:0}).sort({age:-1}).limit(3)
{ "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }
{ "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }

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

MongoDB Enterprise > db.class.deleteMany({$or:[{age:{$gt:12}},{age:{$lt:4}}]})
{ "acknowledged" : true, "deletedCount" : 0 }

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

注:下面操作使用的另一个集合

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

MongoDB Enterprise > db.class.update({'name':'小红'},{$set:{'age':8,'hobby':['dance','draw']}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })


2. 追加小明兴趣爱好  唱歌

MongoDB Enterprise > db.class.update({'name':'小白'},{$push:{'hobby':'sing'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

MongoDB Enterprise > db.class.update({'name':'小王'},{$push:{'hobby':{$each:['basketball','吹牛']}}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

MongoDB Enterprise > db.class.update({'name':'小珍'},{$addToSet:{hobby:{$each:['running','sing']}}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

5. 该班所有同学年龄加1

MongoDB Enterprise > db.class.update({},{$inc:{age:1}},false,true)
WriteResult({ "nMatched" : 10, "nUpserted" : 0, "nModified" : 10 })

6. 删除小明的sex属性

MongoDB Enterprise > db.class.update({'name':'小白'},{$unset:{sex:0}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

7. 删除小李兴趣中的第一项

MongoDB Enterprise > db.class.update({'name':'小哲'},{$pop:{hobby:-1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

MongoDB Enterprise > db.class.update({'name':'小红'},{$pull:{hobby:'draw'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })


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


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

MongoDB Enterprise > db.class.aggregate([ { $group: { _id: "$sex", count: { $sum: 1 } } }])
{ "_id" : null, "count" : 1 }
{ "_id" : "f", "count" : 4 }
{ "_id" : "m", "count" : 5 }


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

MongoDB Enterprise > db.class.aggregate([{$group:{_id:'$name',num:{$sum:1}}},{$match:{num:{$gt:1}}}])

3. 统计每名男生的语文成绩

MongoDB Enterprise > db.class.aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])
{ "name" : "小刚", "score" : { "chinese" : 80 } }
{ "name" : "小猛", "score" : { "chinese" : 89 } }
{ "name" : "小绿", "score" : { "chinese" : 78 } }
{ "name" : "小青", "score" : { "chinese" : 75 } }
{ "name" : "小王", "score" : { "Chinese" : 80 } }


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

MongoDB Enterprise > db.class.aggregate([{$match:{sex:'f'}},{$sort:{'score.english':-1}}]){ "_id" : ObjectId("64a5459ca1a01a01ed810f6c"), "name" : "小红", "age" : 9, "sex" : "f", "hobby" : [ "dance" ], "score" : { "chinese" : 95, "english" : 90, "math" : 85 } }
{ "_id" : ObjectId("64a545d7a1a01a01ed810f6d"), "name" : "小珍", "age" : 20, "sex" : "f", "hobby" : [ "draw", "sing", "dance", "computer", "running" ], "score" : { "chinese" : 93, "english" : 88, "math" : 94 } }
{ "_id" : ObjectId("64a548f0a1a01a01ed810f74"), "name" : "小霞", "age" : 21, "sex" : "f", "hobby" : [ "basketball", "dance", "draw" ], "score" : { "chinese" : 92, "english" : 85, "math" : 76 } }
{ "_id" : ObjectId("64a5463ea1a01a01ed810f6f"), "name" : "小芳", "age" : 21, "sex" : "f", "hobby" : [ "draw", "sing" ], "score" : { "chinese" : 86, "english" : 80, "math" : 90 } }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/3857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【复盘】记录一次类型不一致导致的Kafka消费异常问题

背景 业务主要是通过A系统向B系统写入Kafka,然后B系统消费Kafka 将结果写到Kafka中,A进行消费最终结果。 在整个流程中,A写入Kafka会写入一张 record1表记录,然后在A消费最终结果的时候也记录一张record2表。主要改动的话 只是B系…

设计模式07-责任链模式

责任链模式属于行为设计模式,常见的过滤器链就是使用责任链模式设计的。 文章目录 1、真实开发场景的问题引入2、责任链模式讲解2.1 核心类及类图2.2 基本代码 3、利用构建者模式解决问题4、责任链模式的应用实例5、总结5.1 解决的问题5.2 使用场景5.3 优缺点 1、真…

MFC 基于数据库的管理系统

文章目录 初始化设置菜单 添加数据库类创建数据库配置数据库 全部代码 初始化 创建文件选择基于CListView 初始化数据 public:CListCtrl& m_list;CSQLView::CSQLView() noexcept:m_list(GetListCtrl()) {// TODO: 在此处添加构造代码}void CSQLView::OnInitialUpdate() {C…

Hybird开发,webview和H5交互

H5调用原生功能 封装一个统一的接口,供H5页面调用原生的功能,比如获取设备信息、打开相机、分享内容等。这样,H5页面只需调用这个接口,而无需关心具体的原生实现细节。 //定义一个类,用JavascriptInterface注解来注释…

数据结构与算法——什么是线性表(线性存储结构)

我们知道,具有“一对一”逻辑关系的数据,最佳的存储方式是使用线性表。那么,什么是线性表呢? 线性表,全名为线性存储结构。使用线性表存储数据的方式可以这样理解,即“把所有数据用一根线儿串起来&#xf…

J2EEJSP标签02Foreach标签select

目录 一.foreach标签 编写助手类 编写tld 测试数据辅助类 在页面上使用标签 二.select 编写助手类 编写tld 在页面上使用标签 一.foreach标签 编写助手类 public class ForeachTag extends BodyTagSupport {//存放数据源private List<?> items;//每次循环获取的…

餐饮业油烟在线监测系统的具体应用 安科瑞 许敏

摘要&#xff1a;本文利用物联网技术&#xff0c;构建了一套餐饮企业智能油烟在线监测系统&#xff0c;该系统前台由厨房端和管道端组成&#xff0c;通过网关接入云平台管理系统&#xff0c;实时监控烟道阀门的启闭、变频风机的启停与风速及功率调节、油烟浓度数据等。结合动态…

随手笔记——如何手写高斯牛顿法

随手笔记——如何手写高斯牛顿法 说明源代码 说明 将演示如何手写高斯牛顿法 源代码 #include <iostream> #include <chrono> #include <opencv2/opencv.hpp> #include <Eigen/Core> #include <Eigen/Dense>using namespace std; using names…

HBase

一 HBase简介与环境部署 1.1 HBase简介&在Hadoop生态中的地位 1.1.1 什么是HBase HBase是一个分布式的、面向列的开源数据库HBase是Google BigTable的开源实现HBase不同于一般的关系数据库, 适合非结构化数据存储 1.1.2 BigTable BigTable是Google设计的分布式数据存储…

React总结-01

要点 create app use npx and lanchfolder File structure and main entry point in reactwhat is jsxuseState npx create-react-app my-app cd my-app npm start开始你的第一个react程序 删除除了index.js其他文件 import React from react; import ReactDOM from react-d…

【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3(GDB调试器的基础使用)

【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3&#xff08;GDB调试器的基础使用&#xff09; 目录 【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3&#xff08;GDB调试器的基础使用&#xff09;背景gdb的一些指令gdb实际运用显示代码运行程…

【NLP】transformers的位置编码

一、背景 本文是“实现的变压器”系列的第二篇。它从头开始引入位置编码。然后,它

Day4 网络流与二分图

之前那篇博客是在入门网络流时写的&#xff0c;现在对网络流重新有了一定的理解。 1. 最大流 FF 增广思想 Ford–Fulkerson 增广&#xff0c;核心即不断找增广路并增广。 dfs 实现 // FF brute #include <bits/stdc.h> #define int long longusing namespace std;in…

OkHttp原理和机制讲解

OkHttp原理和机制讲解 本文链接&#xff1a;https://blog.csdn.net/feather_wch/article/details/131767285 1、OkHttp的原理和机制包括哪些部分&#xff1f; 设计模式的运用&#xff1a;建造者模式、外观模式、责任链模式整体流程分发器(调度机制)TCP链接复用(复用机制)拦截…

2023米哈游图像算法暑期实习面经

来源&#xff1a;投稿 作者&#xff1a;LSC 编辑&#xff1a;学姐 本文不可转载 违者必究 1.自我介绍 2.能实习多久&#xff1f;公司在心目中的地位排序等 3.是否了解公司&#xff0c;用他们的产品吗&#xff1f;(比如原神) &#xff0c;喜欢游戏吗&#xff1f; 我只知道公司…

划片机的作用将晶圆分割成独立的芯片

划片机是将晶圆分割成独立芯片的关键设备之一。在半导体制造过程中&#xff0c;晶圆划片机用于将整个晶圆切割成单个的芯片&#xff0c;这个过程被称为“晶圆分割”或“晶圆切割”。 晶圆划片机通常采用精密的机械传动系统、高精度的切割刀具和先进的控制系统&#xff0c;以确保…

web-其他注入

堆叠注入 mysqli_query()只能执行一条SQL语句&#xff0c;mysqli_multi_query()可以执行多条语句 堆叠注入与联合查询的区别&#xff1a;union 执行的语句类型是有限的&#xff0c;只能执行 select &#xff0c;堆叠注入可以执行任意语句。但使用堆叠注入&#xff0c;需要后端…

恢复idea删除的git本地文件

idea中删除git本地文件无法远程拉取pull已删除文件的问题 当前本地库处于另一个分支中&#xff0c;需将本分支Head重置&#xff0c;git 强行pull并覆盖本地文件 解决方式一&#xff1a; git fetch --all git reset --hard origin/master git pull解决方式二&#xff1a; git…

Oracle密码文件

Oracle密码文件 Oracle密码文件用于用户远程管理数据库验证 我们可以通过将普通用户加入到密码文件中&#xff0c;使他们可以使用sysdba或sysoper的权限来管理数据库 使用ORAPWD命令创建 语法如下: ORAPWD FILEfilename [ENTRIESnumusers] [FORCE{Y|N}] [IGNORECASE{Y|N}] …

ylb-项目简介

1、各模块服务功能 注&#xff1a;其部分实体类、接口、mapper文件由MyBatis逆向工程生成。 2、Maven管理&#xff08;多模块&#xff0c;继承和聚合&#xff09; 2.1 parent模块 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"…