上一篇文章中我们已经成功搭建起来MongoDB服务器,
搭建MongoDB服务器
。今天继续学习MongoDB常用的命令。
MongoDB操作起来非常灵活,不会像传统的关系型数据库那样有很多限制,首先来看数据库的创建和删除如何完成。
1.创建数据库
语法:use 数据库名。这个语法放在关系型数据库中是切换数据库的意思,在MongoDB中,如果该数据库存在,直接切换,如果不存在,则先创建,再切换,就是这么简单方便。比如,我们创建一个名为testdb的数据库,代码如下。
如图,终端打印switched to db testdb,表示testdb数据库已经创建完毕,并且系统已经切换到了该数据库中。
2.查看数据库
我们并没有在结果列表中看到刚才创建的testdb数据库,这是因为testdb只是创建,还没有添加数据,空的数据库不会在show dbs中显示。
3.查看当前切换的数据库
4.删除数据库
先切换到要删除的数据库use db,再执行删除操作db.dropDatabase(),比如,删除testdb数据库。
如图,终端打印{"ok":1},表示删除成功。
数据库创建完成之后,接下来就是添加数据,MongoDB中数据的存储结构和非关系型数据库有很大区别,MongoDB是以集合的形式来存储数据的,并且数据是以JSON的格式存储到集合中的。
5.创建集合
集合的创建和数据库的创建类似,不需要先创建,再操作,创建和操作可以用一条命令同时完成,比如,我们现在再testdb中创建一个my_student集合,并且给集合中添加数据。
语法:db.集合名.insert()
如图,终端打印WriteResult({"nInserted":1})表示添加成功,使用db.my_student.save()也可以完成添加功能。
6.查看集合
show collections或者show tables,都是查看当前数据库全部集合的命令。
7.查询全部数据
如图,查询出了全部数据,我们可以看到每一条数据除了x和name属性之外,还有一个_id属性,并且其类型为ObjectId,该属性是MongoDB自动添加的,相当于主键,并且不会重复,所以我们就不需要设置自增来保证主键的唯一性了。
8.精确查找,比如,查找x=1的数据
9.查询结果集合中的第1条数据
如果同时查询出多条符合条件的数据,可以使用findOne来获取第1条结果。
10.分页查询
MongoDB的分页查询很简单,语法类似于MySQL,使用limit关键字完成,比如,查询前3条记录。
如果要查询第2页的3条记录,结合skip()方法,skip(num)是跳过前num条记录。
查询的结果是第2条到第4条记录。
11.查询排序
根据x的值进行升序排列。
根据x的值进行降序排列。
12.修改
将x:1的数据name值修改为Jack。
修改完成之后,再查询,可以看到name已经改为了Jack。
13.如果修改一条不存在的数据,不会报错,对数据没有做出修改,并给出信息。
nMatched表示匹配成功为0条,nModified表示修改的数据为0条。
14.我们给update方法添加一个参数,结果就不一样了。
nUpserted表示如果数据不存在,先创建,再修改,所以update方法的第3个boolean类型参数表示的是如果数据不存在,是否要创建,默认值为false,表示不创建。
15.如果同时存在多条匹配的数据,默认只修改第一条。
如图,只有一条x:1的数据被修改了,如果需要多x:1的数据全部进行修改,添加一个参数即可,同样是boolean类型的参数,默认false表示只修改第一条,true表示全部修改,需要注意的是最后一个参数为true时的时候必须使用{$set:}进行更新。
16.删除数据
将x:1的数据删除,集合中所有满足x:1的数据都会被删除。
17.清空集合
如果remove()方法参数为空,会删除集合中所有数据。
领取专属 10元无门槛券
私享最新 技术干货