山东大学软件学院nosql实验二
实验二 熟悉环境、建立/删除表、插入数据
实验内容:
创建命名空间(user+学号,例如user201500300001),设计表结构并创建表,将附件数据插入。
实验步骤与内容:
方法一:
对于csv文件的插入,我们可以使用MongoDB Database Tools这个工具,它提供了$ mongoimport命令用来插入数据。
- 首先创建命名空间:在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,命名空间创建成功:
- 使用MongoDB Compass这个图形化界面创建collection集合,在此处因为刚开始对实验内容了解不清楚,所以数据库名暂时写为experiment,在最后一步,会将其改为user202200300224。首先点击localhost:27017右侧的+号,创建database和collection
- 创建完成后,点击ADDDATA按钮,选择以csv文件格式导入,在确认无误后,即可导入
- 导入成功后即可在course表中看到导入的数据
- 重复此操作,即可将student、student_course、teacher、teacher_course表也相继导入进来
- 因为之前一步的操作,把数据库命名错误,所以需要按照实验要求,将其重命名,MongoDB数据库其实没法重新命名,它是使用admin账户,将转移数据库的集合到新命名的数据库:
# db.runCommand({"renameCollection":"yourdbname.yourcollection", "to":"newdbname.yourcollection"})
重复此操作即可将所有的collection放入user202200300224数据库中,并且experiment数据库自动drop掉。