一、MongoDB是什么
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库查询的绝大部分功能,而且还支持对数据建立索引。
mongoDB
二、bson相对于json的优点
bson,基于json格式,是MongoDB的数据存储格式。bson相对于json有一下几个优点。
1.遍历
对json格式来说,太大的结构会导致数据遍历非常慢。在json中,要跳过一个文档进行数据读取,需要对此文档进行扫描。而在bson中,可以直接定位到我们所要找的位置。简单的说,json的存储类似于字符串,而bson是按结构存储的。存储空间bson>json,解析速度bson快于json。
2.修改
对json来说,数据存储是无类型的,比如你要修改基本一个值,从9到10,由于从一个字符变成了两个,所以可能其后面的所有内容都需要往后移一位才可以。而使用bson,你可以指定这个列为数字列,那么无论数字从9长到10还是100,我们都只是在存储数字的那一位上进行修改,不会导致数据总长变大。
三、MongoDB的下载以及图形界面工具
MongoDB的下载地址:https://www.mongodb.com/download-center?jmp=nav#atlas
关于MongoDB的下载与配置,已有许多相关资料,这里不再描述。
MongoDB和MySQL一样,没有直接的图形界面,是在命令行中进行操作的。这样的操作麻烦而且不直观,当然官方也给出了相应的图形界面工具,但是这里我们采用第三方的图形界面工具Robo 3T 。
Robo 3TRobo 3T的下载地址:https://robomongo.org/
四、使用Robo 3T进行简单的增删改查
1、创建连接
打开Robo 3T,点击左上角的Create可以新建连接。如图,我们已经建立了名为mongodb的连接。
创建连接
选择相应的连接,点击Connect进行连接,进入Robo 3T主界面。
主界面
2、创建数据库
右键左上角的连接名,点击Create Database。
连接名
输入数据库名,Create。这里,我们创建名为test1的数据库。
创建数据库
创建完成后,可以看到test1下有Collections,Functions和Users三部分。Collections表示集合,Functions表示函数,Users表示用户。
image.png
右键Collections,选择Create Collection,输入集合名,即可创建集合。我们创建一个名为collection1的集合。
创建集合
3、增
(1)使用图形化插入
右键collection1,点击Insert Document,即可进行插入。我们添加如下信息,点击Save。
增
右键test1数据库,点击Open Shell,输入如下命令,点击左上方的绿色三角形运行,来查看我们添加的信息。
添加的信息
(2)使用nosql语句插入
在shell中输入如下语句,点击运行。
插入
(这样是在插入在新的Document中,如果要插入在已有的Document下,采用update,在下面会讲到。)
查看。
添加的信息
4、删
(1)使用图形化删除
右键点击一条记录,选择Edit Document,弹出和插入时一样的窗口,直接将要删掉的内容删除,点击save即可。
删除
这样删除的是Document下的记录。如果要删除整个Document,点击Delete Document。
(2)使用nosql语句删除
在shell中输入如下语句,点击运行。
删除
(这样删除的是整个Document,如果要删除已有的Document下的内容,采用Update,在下面会讲到。)
如果remove({}),将会删除当前collection中的所有Document,千万不要手贱哟。
5、改
(1)使用图形化修改
右键点击一条记录,选择Edit Document,弹出和插入时一样的窗口,直接进行修改,点击save即可。
(2)使用nosql语句修改
在shell中输入如下语句,点击运行。
upsert=true表示如果不存在则插入。multi=true表示允许修改多条记录 。
下面这条语句表示将含有"c":1的Document下的"c":1改为"c":3。
修改
下面这条语句表示将含有"c":1的Document下的key为"e"的value改为3。
修改
下面这条语句表示将含有"c":1的Document下的"e":3删除。
修改
下面这条语句表示删除所有Document下的"e":3。
修改
6、查
(1)使用图形化查询
右键collection1,点击View Document,直接查看collection1下所有的Document。
(2)使用nosql语句查询
在shell中输入如下语句,点击运行。
下面这条语句表示查询collection1下的所有Document。
查询
下面这条语句表示查询collection1下包含"c":2的所有Document。
查询
下面这条语句表示查询collection1下包含"c":2的一个Document。
查询
下面这条语句表示查询collection1下包含"c":2的两个Document。
查询
下面这条语句表示查询collection1下包含"c":2的所有Document,并按age正序排列。
查询
下面这条语句表示查询collection1下包含"c":2的所有Document,并按age倒序排列。
查询
下面这条语句表示统计collection1下的Document数。
查询
下面这条语句表示找出age>27的Document。(有多个key为age时,以find时显示在最上面的age为准,下同)
查询
下面这条语句表示找出age≥27的Document。
查询
下面这条语句表示找出age<27的Document。
查询
下面这条语句表示找出age≤27的Document。
查询
网友评论