码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 分布式数据库Mongodb——实验一


    目录

    1.创建MongoDB数据库实验环境

    2.使用MongoShell脚本导入数据

    3. 查询students集合,只返回一条数据

    4. 根据你查询出来的记录的结构,使用你自己的数据,构造一个文档,并将这个文档写入students集合

    5.  根据你自己的记录数据,查询比你长得高或者和你一样高的学生记录

    6. 根据你自己的记录数据,查询体重和你相差不超过3kg的学生记录

    7.  统计你所在专业的学生人数

    8. 列出大数据专业所有课程的名称

    9. 将你所在班级的所有同学标记为同班同学(增加一个新字段:{'关系':'同班同学'})

    10. 找到你班上身高最高的3名同学,并删除这些记录


    1.创建MongoDB数据库实验环境

    要求:

    - 服务器地址:localhost(127.0.0.1)

    - 服务端口:27027

    - 存储目录命名:你的姓名拼音首字母(比如:tgy)

    - 日志文件:放在存储目录下,以mongod.log命名

    记得去添加环境变量,添加完再继续往下

    创建配置文件如下

     

    1. storage:
    2. dbPath: D:\MongoDB\(名字缩写)\db#dbpath路径
    3. journal:
    4. enabled: true
    5. engine: mmapv1
    6. systemLog:
    7. destination: file
    8. logAppend: true
    9. path: D:\MongoDB\(名字缩写)\mongod.log#log日志路径
    10. net:
    11. port: 27027#端口号
    12. bindIp: 127.0.0.1
    13. maxIncomingConnections: 10000

    然后打开你的cmd,输入以下命令使其生效

    mongod --config=(这个配置文件的路径)

    启动,在你的cmd里面输入

    mongod --dbpath=D:\MongoDB\(你的名字缩写)\db --port=27027

    然后去你的navicat里面创建一个mongodb连接,像这样

    2.使用MongoShell脚本导入数据

    GenerateStudents .js

    通过外部文件查询导入,然后运行就行了,这里不演示了,不懂再问吧

    3. 查询students集合,只返回一条数据

    1. //选择当前数据库
    2. use cqust;
    3. //查看当前数据库包含的集合
    4. show tables;
    5. //查询集合中的一条数据
    6. db.students.findOne();

    4. 根据你查询出来的记录的结构,使用你自己的数据,构造一个文档,并将这个文档写入students集合

    将内容复制过去,改一下就行了

    1. //构建我的数据
    2. var mydata={
    3. "sno": 20205201314,
    4. "name": "中意",
    5. "gender": 1,
    6. "body": {
    7. "height": 170,
    8. "weight": 50
    9. },
    10. "list": [
    11. 4,
    12. 5,
    13. 4
    14. ],
    15. "phone": "19112404983",
    16. "role": "student",
    17. "major": "大数据",
    18. "grade": 2020,
    19. "class": 2,
    20. "courses": [
    21. {
    22. "course": "结构化数据存储与应用",
    23. "credit": 2,
    24. "score": 61
    25. }
    26. ]
    27. };
    28. //将我的数据插入students这个集合
    29. db.students.insertOne(mydata);

     插入成功

    5.  根据你自己的记录数据,查询比你长得高或者和你一样高的学生记录

    1. //查询比我长得高的或一样高的学生记录
    2. var query={"body.height":{$gte:170}};//查询条件
    3. var projection={};//返回条件
    4. db.students.find(query,projection);

     

    6. 根据你自己的记录数据,查询体重和你相差不超过3kg的学生记录

    1. //查询体重和我相差不超过3kg的学生记录
    2. var query={$and:[{"body.weight":{$lte:53}},{"body.weight":{$gte:47}}]}//查询条件
    3. var projection={}//返回条件
    4. db.students.find(query,projection)

    7.  统计你所在专业的学生人数

    1. //统计我所在专业的人数
    2. var query={"major":"大数据"}//查询条件
    3. db.students.count(query)

    8. 列出大数据专业所有课程的名称

    1. //列出大数据所有专业课程的名称
    2. var query={"major":"大数据"}
    3. db.students.distinct("courses.course",query)

    9. 将你所在班级的所有同学标记为同班同学(增加一个新字段:{'关系':'同班同学'})

    1. //将你所在班级的所有同学标记为同班同学(增加一个新字段:{'关系':'同班同学'})
    2. var document={"关系":"同班同学"}
    3. var query={$and:[{"class":2},{"grade":2020},{"major":"大数据"}]}
    4. db.students.aggregate( [
    5. {$match:query},//查询条件
    6. {$set:document},//字段更新
    7. {$match:query}//查询条件
    8. ] )

    10.  找到你班上身高最高的3名同学,并删除这些记录

    1. //找到你班上身高最高的3名同学,并删除这些记录
    2. var query={$and:[{"class":2},{"grade":2020},{"major":"大数据"}]}
    3. //db.students.aggregate({$match:query},
    4. //{$sort:{"body.height":-1}})
    5. data=db.students.aggregate({$match:query},
    6. {$sort:{"body.height":-1}},//按照指定字段排序
    7. {$limit:3},//只要前三个
    8. {$project:{_id:1}}//取唯一标识_id(son也行)
    9. ).toArray()//转换为数组
    10. db.students.deleteMany({$or:data})
    11. //db.students.aggregate({$match:query},
    12. //{$sort:{"body.height":-1}})

     删除前

    删除成功

    删除后

     后面可能会更新mongodb的安装(有时间的话),有问题的可以私信,因为自己所做,有些地方可能有错误,还请大家斧正,同样收到问题会实时更新的,最后求个赞。

  • 相关阅读:
    目标检测算法——YOLOv5/YOLOv7改进之更换FReLU激活函数
    猴子也能学会的jQuery第十期——jQuery元素操作
    learning项目总结
    《游戏编程模式》学习笔记(十二)类型对象 Type Object
    功能基础篇1——壹文搞清编码、解码、字符集、编码方式、字符编码、编码方式
    【无标题】
    【青书学堂】2023年第二学期 PhotoShop基础与应用(高起专) 作业
    Java 连接linu 执行指令
    【西瓜书学习】1、决策树
    Vue3 script setup 语法糖(升级版)
  • 原文地址:https://blog.csdn.net/qq_55977554/article/details/127640869
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号