上次介绍了MongDB的安装与启动,每次启动都要mongod --dbpath xxx,
可以新建一个bat文件,这样每次启动都会方便一些
一、建议使用的可视化工具
在cmd命令行届满操作MongoDB不是很方便,这里推荐安装Robo 3T,官网https://robomongo.org/,安装很简单,这里就不多说。
二、MongoDB的数据模型
MongoDB是面向文档的数据库,不是关系型数据库。放弃关系模型的主要原因是为了获得更好的扩展性。
基本的思路就是将原本的“表”概念换成了集合(collection),将“行”换成了文档。在MongoDB钟可以将文档或者数组内嵌到文档之中,可以用一条记录表示非常复杂的层次关系。
集合可以看做是没用模式的表
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限
三、MongoDB的基本操作
接下来启动MongoDB,启动安装好的可视化工具
右键新建一个连接
一切默认就ok,点test测试是否连接成功。点击save保存连接设置。
创建一个新的数据库,用来演示接下来的操作。
新建的数据库中没有数据,集合为0。
创建一个新的集合
支持js语法,这里用for循环插入一些数据
ps:(db.getCollection('collection1').insert({"x":i}) i 为x键的值,这条语句即为向名为collection1的集合中插入一条x为i的记录)
用findOne可以查找到集合中的第一条数据。
也可以通过find进行条件筛选查询(支持模糊查询)
同意remove也支持条件筛选
不传参数则为清空全表
insert方法也可以用来插入数组
这样集合中的每一个文档都是
类似格式的。这时候可以通过find({“x”:1}}),查找到图中第二个文档
插入一条x为1,返回个数变为2。
通过update更新x的值,可以看见只更新了一条记录。
通过find可以发现,只更新了最前面的记录。原因如下
db.collection.update(criteria,objNew,upsert,multi)
参数说明:
criteria:查询条件
objNew:update对象和一些更新操作符
upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false,不插入。
multi:默认是false,只更新找到的第一条记录。如果为true,把按条件查询出来的记录全部更新。
如果要将x为1的记录全部更新,需要将参数multi设置为true,并使用修改器$set