MongoDB数据模型-课件_第1页
MongoDB数据模型-课件_第2页
MongoDB数据模型-课件_第3页
MongoDB数据模型-课件_第4页
MongoDB数据模型-课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第<0>页封面页文档型NoSQL系统-----MongoDB报告人:阮榕城

导师:林子雨

厦门大学数据库实验室

2015年7月17日2目录第一章第二章第三章第四章第五章第六章第七章第八章什么是面向文档的数据库?国内使用的案例为什么要使用MongoDB?是否需要迁移?MongoDB数据模型简单的MongoDB操作MapReduce索引第<1>页目录页第九章Sharding分片3第<2>页什么是面向文档的数据库?什么是面向文档的数据库?第一章4第<3>页第一章文档数据库集合文档(Document):每一个文档都是自包含的数据单元,是一系列数据项的并集。每个数据项都有一个名称与对应的值,可以是简单的数据类型,如字符串、数字、日期;也可以是复杂的类型,如有序列表等。文档很类似JSON的字段和值对。什么是面向文档的数据库?集合(Collection):一组相关的文档,他们拥有一套共享的通用索引。集合与关系型数据库中的表是类似的。5第<4>页什么是面向文档的数据库?第一章MongoDB6MongoDBMongoDB是10gen公司开发一款以高性能和可扩展性为特征的开源软件,是面向文档的数据库。它介于关系型和非关系型数据库之间的产品。MongoDB最大的特点是支持的查询语句非常强大,其语法类似面向对象的查询语句,类似关系数据库单表查询的绝大部分功能,支持对数据建立索引。它是面向集合,模式自由的文档型数据库。第一章第<5>页什么是面向文档的数据库?7第<6>页国内使用的案例国内使用的案例第二章8第<7>页国内使用的案例第二章1视觉中国资讯数据库2优酷在线评论业务3奇虎360“HULK”云平台上,每天都运行着1,500多个实例以及共计200亿次查询4百度百度云的MongoDB数据库支持9第<8>页为什么要使用MongoDB?为什么要使用MongoDB?第三章10表字段:”love_cycle”,”love_cook”,”love_guitar”……不能确定的表结构,表结构过于复杂JSON序列化和反序列化并不能解决全部问题第三章第<9>页为什么要使用MongoDB??{ key1->’骑行’ key2->’下厨’ key3->’吉他’}11MongoDB的优势无表结构容易扩展性能卓越简便管理功能丰富第三章第<10>页为什么要使用MongoDB?第一点无表结构正文第三章第一节MongoDB的优势为什么要使用MongoDB?第<11>页1、不用关心表结构和程序之间的一致性。2、减少了增加字段的开销{“welcome”:“Beijing”}{“age”:“25”}共存一个集合13第二点容易扩展正文第三章第一节MongoDB的优势为什么要使用MongoDB?第<12>页升级(购买更好的机器)?扩展(将数据分散到很多机器上)?1、自动分散数据2、平衡集群数据和负载3、自动重排文档14第三点丰富功能正文第三章第一节MongoDB的优势为什么要使用MongoDB?第<13>页索引丰富的功能存储JavaScript聚合固定集合文件存储15第四、五点性能卓越,便捷管理正文第三章第一节MongoDB的优势为什么要使用MongoDB?第<14>页服务器自动配置简化数据库的管理性能卓越,便捷管理预分配数据文件空间,存储引擎中使用内存映射文件16事务查询Join查询空间需求不足需要进行join的地方不能使用MongoDB由关系型数据库查询空间换取性能,对硬盘空间逐渐增大!第三章第<15>页为什么要使用MongoDB?17第<16>页是否需要迁移?是否需要迁移?第四章18如果有2个以上的需求在关系型数据上无法满足,就应该考虑迁移到MongoDB?第四章第<17>页是否需要迁移?Tips:项目开发中请不要试图去使用一些开发人员不熟悉的技术,也要考虑后期维护成本,经常debug的风险!19第<18>页是否需要迁移?MongoDB数据模型第五章20第<19>页MongoDB数据模型第五章21第<20>页MongoDB数据模型第五章22第<21>页MongoDB数据模型第五章引用内嵌文档结构存储链接或者

引用

信息来实现两个不同文档之间的关联。把相关联的数据保存在同一个文档结构之内23正文第五章第<22>页第1节文档结构----引用MongoDB数据模型第五章文档结构------引用24正文第五章第<23>页第2节文档结构----内嵌MongoDB数据模型第五章文档结构------内嵌25正文第五章第<24>页第3节使用场景----引用MongoDB数据模型第五章文档结构------引用一般如下情况建议使用引用文档结构:2当内嵌数据会导致很多数据的重复,并且读性能的优势又不足于盖过数据重复的弊端时候。需要表达比较复杂的多对多关系的时候。3大型多层次结构数据集。1引用比内嵌要更加灵活一些。但客户端应用必须使用二次查询来解析文档内包含的引用。26正文第五章第<25>页第4节使用场景----内嵌MongoDB数据模型第五章文档结构------内嵌一般如下情况建议使用引用内嵌结构:2数据对象之间有“contains”(包含)关系。数据对象之间有一对多的关系。这些情况下“多个”或者子文档会经常和父文档一起被显示和查看。1引用比内嵌要更加灵活一些。但客户端应用必须使用二次查询来解析文档内包含的引用。27第<26>页简单的MongoDB操作简单的MongoDB操作第六章28正文第六章第<27>页第1节启动数据库简单的MongoDB操作第一点启动数据库D:\MongoDB\Server\mongod.exe--dbpathD:\MongoDB\Data\db29正文第六章第<28>页第2节连接数据库简单的MongoDB操作第二点连接数据库D:\MongoDB\Server\mongo.exe客户端:服务端:30正文第六章第<29>页第3节插入文档简单的MongoDB操作第三点插入文档db.users.insert(JSON);客户端:31正文第六章第<30>页第3节插入文档简单的MongoDB操作第三点插入文档Vardocuments=[{name:”ruanrc”,addr:”dblab303”,hobby;”riding”},{name:”luodw”,addr:”dblab303”,hobby;”coding”},];插入:文档数组db.users.insert(documents);32正文第六章第<31>页第3节插入文档简单的MongoDB操作第三点插入文档_idkey_id是MongoDB自有产物,存储在集合中的每个文档都有一个默认的主键_id,名称固定,类型可以是MongoDB支持任何类型,但默认是ObjectId,但是同一个集合中文档的_id的值必须是唯一的,不能重复。

即使插入文档的时候没有指定_id,MongoDB也会自动生成。同样不支持自增主键。

33正文第六章第<32>页第四节更新文档简单的MongoDB操作第四点更新文档将name是ruanrc的文档的hobby字段修改成riding_bak:db.users.update({name:”ruanrc”},{$set:{hobby:”riding_bak”}});remove:find:34正文第六章第<33>页第五节删除文档简单的MongoDB操作第五点删除文档将name是luodw的文档从users集合删除:db.users.remove({name:”luodw”});update:find:35正文第六章第<34>页第六节复杂查询和修改简单的MongoDB操作第六点复杂查询和修改更新内嵌的字段db.users.update({name:”ruanrc”},{$set:{“hobby.num”:”9527”}});返回指定的字段db.users.find({name:”ruanrc”},{_id:0});1So

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论