跳转至

练习四:安装并使用 MongoDB

参考资料

  1. MongoDB简易安装和操作教程 - 厦门大学林子雨老师
  2. Windows 平台安装 MongoDB - 菜鸟教程
  3. 实验4 NoSQL和关系数据库的操作比较 - CSDN
  4. MongoDB 6.0 Windows10 实验操作命令可复制 - CSDN
  5. Windows下安装 MongoDB - CSDN
  6. MongoDB6安装和使用 - CSDN

一、实验目的

  1. 安装 MongoDB
  2. 使用 MongoDB 进行简单的建表操作

二、实验环境

  1. 操作系统:Windows10
  2. MongoDB 6.0.3 (Compass 1.6)
  3. MongoDB Shell 1.6.1

三、实验内容和要求

1 下载 MongoDB 社区版

2 安装 MongoDB Server

  在安装时,需要注意两点,其余保持默认配置安装即可。

2.1 选择自定义安装

image-20221214193131842

图 3-1 选择自定义安装

2.2 修改安装路径

image-20221214193405697

图 3-2 修改安装路径

2.3 浏览器访问

  • 在安装结束后,在浏览器中输入 http://127.0.0.1:27017/ ,显示如下界面即为安装成功。

image-20221215200742221

图 3-3 浏览器启动

3 安装 MongoDB Shell

  MongoDB Shell 是连接(和使用)MongoDB 的最快方式。使用这个现代的、可扩展的命令行界面轻松查询数据、配置设置和执行其他操作。

注1: MongoDB Shell 是一个开源 (Apache 2.0),独立于 MongoDB 服务器开发的独立产品。

注2:与以往版本不同,MongoDB6 没有 mong.exe 和 mongdb.exe,要想通过命令行启动 MongoDB需要自己下载一个 MongoShell

  • 修改安装路径(这里我们直接改到 MongoDB 所在路径),并取消只为当前用户安装

image-20221215193147405

图 3-4 安装 MongoDB Shell

4 配置环境变量

  与以往的旧版本不同,MongoDB6 将数据目录存储在 data 目录下,可以直接使用。但为了方便后续运行 MongDB,我们需要将安装路径写入到系统变量中。

在系统变量 Path 中添加

1
E:\program\MongoDB6\bin
1
E:\program\MongoDB6\mongosh

5 启动 MongoDB

5.1 Shell 启动

命令行启动 MongoDB Shell

1
mongosh

image-20221215195744950

图 3-5 启动 MongoDB Shell

5.2 Compass 启动

image-20221215201128348

图 3-6 MongDB Compass 启动界面

6 创建数据库

  启动 MongDB 后默认是在 test 数据库中,可以通过 use 数据库名称 改变当前数据库。

创建并切换 bigdata 数据库

1
use bigdata

查询当前数据库

1
show dbs

image-20221215205741784

图 3-7 创建 bigdata 数据库

7 增删改查 CURD

  MongoDB 不用去设计表,避免了像关系型数据库设计表时的麻烦和复杂。接下来我们将以测绘遥感类 SCI 期刊信息为数据进行数据库的增删改查四大基本操作。

7.1 插入并查看数据

  在 MongoDB Shell 中,每行命令都以 ; 分号结尾,如果没有分号,则可以进行换行输入。

注:在命令行中,右击鼠标即可粘贴复制好的数据

向 bigdata 插入单条数据

1
2
3
4
5
6
7
db.bigdata.insert({
    title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库', 
    by: 'vivian', 
    group: '地质大数据第12组', 
    tags: ['mongodb', 'database', 'NoSQL']
});

查询数据

1
db.bigdata.find()

image-20221215212646017

图 3-8 插入数据并查询

7.2 批量插入数据

向 bigdata 批量插入测绘遥感类 SCI 期刊信息

1
2
3
4
5
6
7
8
db.bigdata.insertMany([
    {"Journal Name":"Nature Geoscience","partition":1,"top":true,"2021 IF":21.531},
    {"Journal Name":"Remote Sensing of Environment","partition":1,"top":true,"2021 IF":13.850},
    {"Journal Name":"Earth System Science Data","partition":1,"top":true,"2021 IF":11.815},
    ...
    {"Journal Name":"Remote Sensing","partition":2,"top":true,"2021 IF":5.349},
    {"Journal Name":"IEEE Geoscience and Remote Sensing Magazine","partition":2,"top":false,"2021 IF":13.925},
]);

image-20221227154839795

图 3-9 批量插入数据

查询数据库中期刊名为 Remote Sensing 的数据

1
db.bigdata.findOne({"Journal Name":"Remote Sensing"})

image-20221227155004247

图 3-10 条件查询数据

7.3 修改数据

添加两条测试数据

1
2
3
4
db.bigdata.insertMany([
    {"Journal Name":"test1","partition":1,"top":true,"2021 IF":7.483},
    {"Journal Name":"test2","partition":0,"top":false,"2021 IF":0},
]);

修改 test1 数据的期刊名

1
db.bigdata.updateOne({"Journal Name":"test1"},{$set:{"Journal Name":"Geoscience Frontiers"}});

image-20221227161034717

图 3-11 修改数据

7.4 删除数据

删除名为 test2 的数据

1
db.bigdata.deleteOne({"Journal Name":"test2"});

image-20221227161131964

图 3-12 删除一条数据

删除数据库中全部数据

1
db.bigdata.deleteMany({});

image-20221215231005188

图 3-13 删除全部数据

退出数据库命令行

1
exit

image-20221227161318859

图 3-14 退出数据库命令行

四、问题与解决方案

1 问题一

1.1 问题描述

  在 MongoDB 6 中,insert() 函数已经被废弃,但是仍然不影响使用。

image-20221215214226123

图 4-1 问题一实例

1.2 解决方案

  在插入数据时,尽量使用插入单条数据 insertOne() ,插入多条数据 insertMany()bulkWrite()


最后更新: 2023-03-08
创建日期: 2022-12-27
作者: gis-xh