Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mongodb初中级实战教程 讲师:涂宗勋 讲师的CSDN博客地址 http://blog.csdn.net/tuzongxun.

Similar presentations


Presentation on theme: "Mongodb初中级实战教程 讲师:涂宗勋 讲师的CSDN博客地址 http://blog.csdn.net/tuzongxun."— Presentation transcript:

1 mongodb初中级实战教程 讲师:涂宗勋 讲师的CSDN博客地址

2 个人介绍 姓名:涂宗勋 籍贯:湖北十堰 现居:广东深圳 擅长技术:java、mongodb、activiti等 个人签名: 挖掘自己的价值,为自己造一个好饭碗;展现自己的得失,助他人造一个好饭碗! 个人博客网站: qq交流群:

3 第五课 mongodb基础操作 一、准备知识 对比mysql来理解mongodb的一些术语和概念 mysql mongodb
库database 库db 表table 集合collecction 记录 文档 列名 key 每列对应的值 value

4 第五课 mongodb基础操作 二、基础查询操作 show dbs 查询数据库列表(需要当前用户对所有库拥有读权限)
show collections 查询当前数据库的集合列表(需要当前用户对当前库有读权限) show users 查询当前所在库的所有用户(读的权限) db.system.users.find() 查询出所有的用户信息,包括作用域,认证方式等。只能在admin库中操作,mongodb3.0以后说是没有默认的admin库了,刚创建的数据库中是没有admin库的,但实际使用时发现依然是存在的,因为有很多操作只能在进入admin库以后才能成功执行。

5 第五课 mongodb基础操作 db.collectionName.find({…}) 条件查询具体的文档数据,如果结果超过20条,默认返回前20条。不指定条件时,默认查询所有。 find实际上有两个参数,每个参数都是bson格式的键值对,中间以逗号隔开,第一个参数代表查询条件。 find第二个参数代表指定返回的列或者说指定不返回的列,第二个参数的key为指定列的列名,value为1代表需要返回,value为0代表不需要返回。

6 第五课 mongodb基础操作 有同学大概已经想到一件事,那就是这里查询条件的key:value中,冒号“:”实际上就相当于mysql中的等于“=”,那么对于mysql中的>、<、>=、<=这些符号是否也是可以直接写的呢?答案是否定的。 Mongodb中这些运算符需要使用特定的操作符,$gt、$lt等,学java学js的应该也能想到,这里说白了就是使用转义字符,之前介绍过mongodb是用js写的。

7 第五课 mongodb基础操作 三、help操作(授人以鱼,不如授人以渔)
使用help可以查看各个级别的使用帮助,例如直接help,查询出的就是最高级别的帮助

8 第五课 mongodb基础操作 使用db.help(),就可以查看库级的帮助,列出库级的所有操作帮助;使用db.test.help(),就可以查看集合级别的帮助;以及使用rs.help()就可以查看副本集级别的帮助等等,知道有这个操作了,就可以针对性的结合搜索引擎学习了解了。

9 第五课 mongodb基础操作 四、mongodb的新增操作
use dbName 切换数据库,使用数据库,如果该数据库目前不存在,那么这个就是创建数据库的第一步 db.collectionName.insert({key:value}) 插入数据,如果当前库或者集合不存在,那么这就是创建该数据库和集合的第二步。 当然了,新增数据还可以用db.collectionName.save({key:value}),保存数据,也是可以起到创建数据库和集合的作用。

10 第五课 mongodb基础操作 上边说insert和save是创建库和集合的第二步,前提是该库和集合不存在,当库和集合存在时,他们的作用就是单纯的新增数据。 但这两个操作只是比较常规的新增操作,还有一些不太常规的,实际上之前已经有接触过一个: db.createUser({})创建用户; 以及后边要说的创建索引: db.test.createIndex({})/db.test.ensureIndex({}) ……

11 第五课 mongodb基础操作 五、修改操作
db.collectionName.update({key:value},{key:value}) 这种是最简单的修改操作,第一个参数是条件,第二个是修改后文档的内容,这里的问题就是,不论之前文档里是什么,执行这个操作后第二个参数内容就会覆盖掉原来的数据

12 第五课 mongodb基础操作 一般来说,上边的这种情况在实际使用的时候是不太可能出现的,我们希望的是只更改name字段,而不是把整个文档覆盖掉,如果要实现只更改name字段的情况,就需要使用到$set操作符。当然了这里的操作符比较多,可以自己网上搜一下。

13 第五课 mongodb基础操作 Mongodb在update操作上有一个相对于mysql来说比较牛的功能,那就是当根据条件没有匹配到任何数据的时候,如果是mysql,就不会存在修改的动作。而mongodb中,可以通过指定update第三个参数为true使根据条件没有匹配到数据时,直接把该数据新增到数据库中,update第三个参数默认是false。

14 第五课 mongodb基础操作 在mysql中,如果使用update table set name=“aaa” where name=“bbb”这样一条修改语句,那么所有name为bbb的都会被改成aaa,但是在mongodb中我们上边的实例中,实际上只会修改匹配到的第一条

15 第五课 mongodb基础操作 如果要实现和mysql一样的,匹配的数据全部修改,要怎么办呢?Mongodb的update操作还有第四个参数,这个参数也是默认为false,就是匹配多条数据时只作用于第一条,当把这个值改为true时,就会修改所有匹配的数据

16 第五课 mongodb基础操作 以上是update中比较常用的参数,实际上并不止这些,想要了解的可以直接去官网

17 第五课 mongodb基础操作 六、删除操作
db.dropDatabase() 删除当前库,在哪个库执行就删除哪个,要慎用,admin库是不能随便drop的。

18 第五课 mongodb基础操作 db.collectionName.remove({key:value})可以删除集合中符合条件的数据,当不指定key:value只使用{}时,会删除所有数据,但是和find不一样的是,这里{}必须有,即便是没有任何内容。但是即使是使用空的{}删除,删除的只是数据,而不会删除表结构。也就是说删的是mongodb集合中的文档,而不会删除集合本身。

19 第五课 mongodb基础操作 如果要删除数据和集合的全部信息,就要使用db.collectionName.drop(),执行这个操作会发现对应的集合就查不到了 上边的这些也是基础常规的删除操作,和新增一样,也有一些不常规的,例如对用户的删除,对索引的删除,这里就不再举例。

20 THANKS 本课程由 涂宗勋(讲师名称)提供 CSDN网站:www.csdn.net 企业服务:http://ems.csdn.net/
人才服务: CTO俱乐部: 高校俱乐部: 程序员杂志: CODE平台: 项目外包: CSDN博客: CSDN论坛: CSDN下载:


Download ppt "Mongodb初中级实战教程 讲师:涂宗勋 讲师的CSDN博客地址 http://blog.csdn.net/tuzongxun."

Similar presentations


Ads by Google