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

山东大学软件学院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掉。


http://www.kler.cn/a/561301.html

相关文章:

  • 解决鼠标唤醒关屏状态下的笔记本
  • 开源嵌入式实时操作系统uC/OS-II介绍
  • 学习笔记--电磁兼容性EMC
  • DeepSeek 15天指导手册——从入门到精通 PDF(附下载)
  • Figure自研模型Helix发布,人形机器人迈向新纪元?
  • C++程序员内功修炼——Linux C/C++编程技术汇总
  • 如何实现使用DeepSeek的CV模型对管道内模糊、低光照或水渍干扰的图像进行去噪、超分辨率重建。...
  • 解锁Redis的深层能力:事务与消息队列的最佳实践
  • 华为数通 HCIP-Datacom H12-831 新题
  • 使用 DeepSeek + OmniParser v2 + UIAutomation 实现 GUI 应用自动化测试的探索
  • c++中sleep是什么意思(不是Sleep() )
  • Spark MLlib中的机器学习算法及其应用场景
  • 毕业项目推荐:基于yolov8/yolov5/yolo11的番茄成熟度检测识别系统(python+卷积神经网络)
  • sqlclchery面对复杂的sql语句怎么办
  • Windows 11 使用容器(Docker Podman)
  • AI到底能做些什么:详细产品功能对比
  • 力扣-贪心-376 摆动序列
  • 人工智能 阿里云算力服务器的使用
  • Java中的@JSONField注解详解:用法、场景与实践
  • 51单片机编程学习笔记——点亮LED