目的

  1. 理解NoSQL数据库和关系型数据库的区别;

  2. 熟练使用MongoDB操作常用的Shell命令;

平台

操作系统:Linux

MongoDB版本: 3.2.6或以上版本

内容和要求

1.NoSQL数据库和关系型数据库的区别

<1>NoSQL使用简单,开源,成本低;关系型数据库成本高;

<2>Nosql不适用SQL,关系型数据库使用;

<3>NoSQL易扩展,关系型数据库不易扩展。

<4>NoSQL存储方式多,比如key-value(键值对)形式、图结构形式、文档形式等;关系型数据库采用二维表结构的形式对数据进行持久存储。

本次使用的MongoDB就是文档数据库。

2.安装MongoDB

提供两种安装方式,任选一种。

(1)离线安装。

软件下载地址https://www.mongodb.com/try/download/community

离线安装参考教程 http://dblab.xmu.edu.cn/blog/868-2/

(2)在线安装

在线安装参考教程 http://dblab.xmu.edu.cn/blog/mongodb/

3.MongoDB数据库练习

下面以一个School数据库为例,在School数据库中创建一个集合student,并对student集合中的数据进行增删改查基本操作(集合Collection相当于关系型数据库中的表table)。

Student表

sno sname ssex sage sdept
95001 liyong boy 20 CS
95002 liuchen girl 19 IS
95003 wangmin girl 18 MA

根据上面给出的表格,用MongoDB设计student学生表格。

先切换到school数据库

use School

创建Collection

db.createCollection('teacher')

插入数据

两种方式:insert和save

image.png

<1>设计完后,用find指令浏览表的所有数据。

查找数据:

 db.集合名称.find()

image.png

image.png

image.png

<2>查询学号为95002 的所有信息。

image.png

<3>删除姓名为liuchen的数据

db.集合名称.remove()

image.png

<4>将学号为95001的年龄改为22岁

db.集合名称.update()

image.png

4.MongoDB启动报错

错误:

image.png

错误原因:

mongodb非正常关闭后,再次启动会产生about to fork child process, waiting until server is ready for connection此异常。

解决办法:

删除mongodb 的db目录下的mongod.lock文件,重启mongodb即可。该文件会生成在日志 文件下(跟bin目录同级),cd 日志文件后 rm指令删除mongod.lock文件