数据库教程
新建数据库
语法:
use:用于切换/创建数据库,若不存在则创建,否则切换到指定数据库。
DATABASE_NAME:数据库名称。
执行use articledb命令,创建数据库articledb。
查看数据库
语法:查看全部数据库
或者查看当前数据库,需要先切换到指定的数据库
删除数据库
语法:
db:表示当前数据库对象。
dropDatabase():用于删除当前数据库的方法。
删除当前数据库,执行命令前应使用use命令切换到要删除的数据库,为了防止误删可执行命令db验证当前数据库是否为指定删除的数据库。
集合教程
创建集合
语法
显示创建
隐式创建
- db:表示当前数据库对象。
- createCollection():创建集合方法。
- DOCUMENT表示文档。
- COLLECTION NAME表示集合名称。
- OPTIONS表示集合配置。
- insert():向集合中插入文档的方法。
练一练:
执行“db.createCollection("myCollection")”"命令,显式创建集合myCollection。执行"showcollections“命令,查看是否成功创建集合。
删除集合
语法:
- db:表示当前数据库对象。
- COLLECTION NAME:表示集合名称。
- drop():删除集合方法。
练一练:执行“db.myCollection.drop()"命令,删除集合myCollection。
文档操作教程
文档插入
语法(单文档插入)
或者
语法(多文档插入)
- db:当前数据库对象
- COLLECTION_NAME:**当前集合对象。
- insert()和save():插入单文档方法。
- insertMany():插入多文档方法。
注意:insert()和save()方法的区别在于,若使用insert()方法插入文档时,集合中已存在该文档,则会报错。若使用save()方法插入文档时,集合中已存在该文档,则会覆盖。
练一练:
1、执行“use test"命令,创建并切换到数据库test.
2、隐式创建集合c1并插入文档。命令如下。
3.执行“db.c1.find()”命令,查看集合comment中的文档。
4、向集合comment中插入多文档,命令如下。
db.comment.insertMany([{document1},{document2},{document3}])
文档更新
语法:
- db:当前数据库对象.
- COLLECTION_NAME:当前集合对象。
- update():更新文档方法。
- criteria:更新的查询条件,类似sql中的where。
- objNew:新的对象和操作符,类似sql中的set。
- upsert:不存在更新对象时,是否插入,默认为false
- multi:默认为false,只更新查找到的第一个文档,反之更新所有,
练一练:
将键contect的值由“喝水是生命体通过口腔摄入水分的方式,人体每天通过口腔摄入的液体大约有2升“更新为“喝水增加了尿量,能使有害物质及时排出体内”,具体命令如下。
升级语法
案例说明
准备工作,创建c2集合,循环插入文档数据
练习1:将{uname:“ab1”}改为{uname:“ab2”}
发现:默认不是修改,而是替换。
解决:使用升级语法修改器
练习2:将{uname:“ab3”}改为{uname:“abc3”}
练习3:给{unarme:“ab10”}的年龄加2岁或者减少2岁
练习4:修改器综合练习
插入数据:db.c4.insert({uname:"mantianxing",age:33,who:"女",other:"小仙女"});
文档删除
语法(删除单个)
删除全部文档
- db:当前数据库对象。
- COLLECTION_NAME:当前集合对象。
- remove():删除文档方法。
- query:删除文档的条件,可选参数。
- justOne:的boolean为true或1时,表示只删除查询出的第一个文档。
- writeConcern:表示抛出异常级别。
练一练
删除集合c1中键nickname为“Rose”的文档,具体命令如下。
查看集合所有文档,验证文档是否删除成功,具体命令如下。
删除集合commment中全部文档,具体命令如下。
再次查看集合中所有文档,验证文档是否全部删除,具体命令如下。
文档简单查询
查询所有文档语法。
查询所有文档,以易读的方式展示
- db:当前数据库对象
- COLLECTION_NAME:当前集合对象
- find():查询所有文档方法
- pretty():格式化查询返回结果
按条件查询文档
基础语法:db.集合名.find(条件[查询的列])
条件
练一练
查询age为4,只显示它的姓名;
升级语法
练一练
1.查询年龄大于5岁的数据
2查询年龄是18岁,20岁,25岁的数据
总结
聚合操作
聚合管道操作是将文档在一个管道处理完毕后,把处理的结果传递给下一个管道进行再次处理。聚合管道是使用不同的管道阶段操作器进行不同聚合操作,管道阶段操作器也可称为管道操作符,常见管道操作符如下表。
语法(略复杂)
其中“[]”不是必须的,可以省略!!!
案列学习
准备集合c5,插入文档。注意:一般不指定,id键也不需要双引号。
练习1:使用¥group操作符,将集合c5中的文档按type进行分组,具体命令如下。
练习2:使用¥limit操作符,展示集合c5中前三个文档,具体命令如下
等价于:
练习3:使用¥match操作符,将集合c5中键name的值为HUAWEI MATE30的文档查询出来,具体命令如下
练习4:使用¥sort操作符,将集合c5中的文档按照键price的值进行降序排序,具体命令如下。
等价于:
练习5:使用¥project操作符,展示集合c5中的文档,并且文档均不包含字段_id,具体命令如下
练习6:使用¥skip操作符,展示集合c5中的_id为5的文档(即跳过前面4个文档),具体命令如下
常用表达式
管道阶段操作器的值被称为管道表达式,并且每个管道表达式都是一个文档结构,由字段名称、字段值和管道表达式组成。常见的管道表达式如下表。