当前位置: 首页 > news >正文

山东大学软件学院nosql实验二

实验二  熟悉环境、建立/删除表、插入数据

实验内容:

创建命名空间(user+学号,例如user201500300001),设计表结构并创建表,将附件数据插入。

实验步骤与内容:

方法一:

对于csv文件的插入,我们可以使用MongoDB Database Tools这个工具,它提供了$ mongoimport命令用来插入数据。

  1. 首先创建命名空间:在compass连接数据库成功后,输入use user2022003XXXX,命名空间创建成功:

mongoimport --db [数据库名] --collection [集合名] --type csv --headerline --upsert --ignoreBlanks --file /home/1.csv

--db:需要将数据导入到哪个数据库,跟数据库名。

--collection:将数据导入的 collection 名,如果这个collection之前是不存在的,则会自动创建一个。如果省略--collection这个参数,那么会自动新建一个以 CSV 文件名为名的 collection。

--type csv:文件类型,这里是 csv;

--headerline:这个参数很重要,加上这个参数后创建完成后的内容会以 CSV 第一行的内容为字段名;

--upsert:如果导入的数据已经存在于数据库中,则更新现有文档。如果未找到匹配的文档,则插入新文档;

--ignoreBlanks:这个参数可以忽略掉 CSV 文件中的空缺值;

--file /home/1.csv: csv 文件路径。

2.首先我们需要下到MongoDB官网下载tools这个工具,然后,并将bin填添入到系统环境变量中

3.之后打开命令行,输入导入csv文件的命令:比如:mongoimport -h 127.0.0.1 -d user202200300224 -c course --type csv --headerline --upsert --file E:\小刘的桌面\NOSQL实验lpy\course.csv就可以将csv文档数据导入到user202200300224这个数据库里的course这个collection中

4.以此类推,即可将所有的实验数据都导入进去:

5.在导入过程中,由于个人操作的失误,误创建了一个course_course的collection,根据实验要求要对其进行删除:首先要使用use命令切换到user202200300224这个数据库,才能对其里面的collection进行操作,然后使用

db.course_course.drop()

命令将其删除即可

方法二:

另外还可以使用更加方便的Compass自带的图形化命令进行数据文件的导入:

1.创建命名空间:在compass连接数据库成功后,输入use user202200300224,命名空间创建成功:

  1. 使用MongoDB Compass这个图形化界面创建collection集合,在此处因为刚开始对实验内容了解不清楚,所以数据库名暂时写为experiment,在最后一步,会将其改为user202200300224。首先点击localhost:27017右侧的+号,创建database和collection

  1. 创建完成后,点击ADDDATA按钮,选择以csv文件格式导入,在确认无误后,即可导入

  1. 导入成功后即可在course表中看到导入的数据

  1. 重复此操作,即可将student、student_course、teacher、teacher_course表也相继导入进来

  1. 因为之前一步的操作,把数据库命名错误,所以需要按照实验要求,将其重命名,MongoDB数据库其实没法重新命名,它是使用admin账户,将转移数据库的集合到新命名的数据库:
    # db.runCommand({"renameCollection":"yourdbname.yourcollection", "to":"newdbname.yourcollection"})

重复此操作即可将所有的collection放入user202200300224数据库中,并且experiment数据库自动drop掉。

相关文章:

  • pta天梯L1-004 计算摄氏温度
  • 基于 Spring AI 的 HIS 系统智能化改造
  • (七)消息队列-Kafka 序列化avro(传递)
  • 深入理解 Kubernetes 命名空间:高效管理与隔离资源的关键
  • React Native 原理
  • TDengine 中的数据库
  • C++-第十三章:红黑树
  • webpack5在生产环境屏蔽掉控制台打印 失效处理
  • Nginx 配置前端后端服务
  • 矩阵 trick 系列 题解
  • 【51单片机】快速入门
  • 关于mysql 表中字段存储JSON对象对JSON对象中的bolean字段进行查询的方式
  • 【原创】Ubuntu 24搭建Ollama+ DeepSeek局域网服务器
  • salesforce 为什么无法关闭task,显示:insufficient access rights on object id
  • smolagents学习笔记系列(八)Examples - Master you knowledge base with agentic RAG
  • 第13天:数据序列化实战 - 从内存到磁盘的完美转换
  • 2025 软件供应链安全情报预警平台建设与实践
  • Java中的TreeMap
  • Oracle 数据库基础入门(二):深入理解表的约束
  • DeepSeek 提示词:常见指令类型
  • 92岁上海交大退休教师捐赠百万元给学校,其父也曾设奖学金
  • 青海省交通运输厅副厅长田明有接受审查调查
  • 呼吸医学专家杜晓华博士逝世,终年50岁
  • GDP逼近五千亿,向海图强,对接京津,沧州剑指沿海经济强市
  • 习近平在中拉论坛第四届部长级会议开幕式的主旨讲话(全文)
  • 书法需从字外看,书法家、学者吴本清辞世