码农知识堂 - 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的安装(有时间的话),有问题的可以私信,因为自己所做,有些地方可能有错误,还请大家斧正,同样收到问题会实时更新的,最后求个赞。

  • 相关阅读:
    Redis 中两个字段排序
    史诗级的SpringSecurity的认证授权的相关概念及流程讲解!!!
    HTML入门篇---01常用标签
    Sqoop学习
    C++游戏设计教程(3)—— 字体的颜色
    设计模式-装饰器模式
    大数据快速入门开发环境篇:CentOS 7安装配置Hadoop大数据框架开发环境
    数值分析学习笔记——绪论【华科B站教程版本】
    Vue+SpringBoot实现评论功能
    医药、护士资格考试题库小程序使用指引
  • 原文地址:https://blog.csdn.net/qq_55977554/article/details/127640869
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号