目的
-
理解NoSQL数据库和关系型数据库的区别;
-
熟练使用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
<1>设计完后,用find指令浏览表的所有数据。
查找数据:
db.集合名称.find()
<2>查询学号为95002 的所有信息。
<3>删除姓名为liuchen的数据
db.集合名称.remove()
<4>将学号为95001的年龄改为22岁
db.集合名称.update()
4.MongoDB启动报错
错误:
错误原因:
mongodb非正常关闭后,再次启动会产生about to fork child process, waiting until server is ready for connection此异常。
解决办法:
删除mongodb 的db目录下的mongod.lock文件,重启mongodb即可。该文件会生成在日志 文件下(跟bin目录同级),cd 日志文件后 rm指令删除mongod.lock文件