当前播放: 17 | 文档模型设计之三:模式套用
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 认识文档数据库MongoDB
免费
04 | MongoDB特色及优势
免费
05 | 实验:安装MongoDB
免费
06 | MongoDB基本操作
07 | 实验:Hello World程序开发
08 | 聚合查询
09 | 实验:聚合查询
10 | 复制集机制及原理
11 | 实验:搭建MongoDB复制集
12 | MongoDB全家桶
13 | 模型设计基础
14 | JSON文档模型设计特点
15 | 文档模型设计之一:基础设计
16 | 文档模型设计之二:工况细化
17 | 文档模型设计之三:模式套用
18 | 设计模式集锦
19 | 事务开发:写操作事务
20 | 事务开发:读操作事务之一
21 | 事务开发:读操作事务之二
22 | 事务开发:多文档事务
23 | Change Stream
24 | MongoDB开发最佳实践
25 | 分片集群机制及原理
26 | 分片集群设计
27 | 实验:分片集群搭建及扩容
28 | MongoDB监控最佳实践
29 | MongoDB备份与恢复
30 | 备份与恢复操作
31 | MongoDB安全架构
32 | MongoDB安全加固实践
33 | MongoDB索引机制(一)
34 | MongoDB索引机制(二)
35 | MongoDB读写性能机制
36 | 性能诊断工具
37 | 高级集群设计:两地三中心
38 | 实验:搭建两地三中心集群
39 | 高级集群设计:全球多写
40 | MongoDB上线及升级
41 | MongoDB应用场景及选型
42 | MongoDB典型案例(一)
43 | MongoDB典型案例(二)
44 | 关系型数据库迁移
45 | 数据库迁移方式及工具
46 | Oracle迁移实战
47 | MongoDB + Spark实时大数据
48 | MongoDB + Spark连接实战
49 | MongoDB SQL套接件
50 | MongoDB与微服务
51 | MongoDB与数据中台
52 | MongoDB数据中台案例
53 | 结果测试&结束语
17 | 文档模型设计之三:模式套用

17 | 文档模型设计之三:模式套用

唐建法(TJ)
Tapdata CTO、MongoDB中文社区主席、前MongoDB大中华区首席架构师
全集5194
新人首单 ¥29.9 原价 ¥129
8
本节摘要

下次更新时间为:12 月 18 日
课件和 Demo 地址
https://github.com/geektime-geekbang/geektime-mongodb-course

展开
登录 后留言

精选留言(18)

  • 蒋腾飞同学
    分桶模式太棒了,能再多学几个设计模型就更厉害了!

    作者回复: 我会在全部内容更新完后考虑补充这方面

    2019-12-05
    5
  • 长脖子树
    老师好, 我刚刚学了两天mongodb, 我看了在您在课程中 对IOT 飞机的海量数据中的分桶设计, 我在实际操作时, 每次一个数据进来, 都要去查询一下这个小时/分钟对应的文档有没有入库, 如果没有入库, 则新插入一条; 如果已经入库, 则更新这条文档数组里面的数据, 但我感觉每次查询很频繁.
    这种操作对不对, 有没有更好的方案? 比如 update 的时候直接插入了, 就不需要在插入/更新之前的查询了

    作者回复: update 语句第三个参数可以使用 upsert 属性,了解一下。

    2020-02-18
    2
  • jone
    这个索引,应该是deviceId在前,ts范围时间在后吧。如果范围在前面,查询某个deviceId,某个时间段,只能用上时间段的那个索引。

    作者回复: 是的,这是个笔误,感谢指出,我看如何更正一下。

    2020-01-02
    1
  • Andreby
    唐师 什么时候讲讲索引的使用?

    作者回复: 第三部分就有。

    2019-12-10
    1
    1
  • 一步
    这个索引需要的 存储空间大小,是怎么计算出来的啊?

    作者回复: db.collection.stats() 的结果里面有索引大小。

    ....

    "totalIndexSize" : 32768,
    "indexSizes" : {
    "_id_" : 32768
    },
    "ok" : 1

    2019-12-08
    2
    1
  • 申学晋
    当前一个项目使用了分桶模式,实测效果还不错,想请教一下老师,还有没有更好的优化方案,
    场景:类IoT项目,时间序列数据,每组10000个传感器左右,最快采集一次0.5s,慢的10s一次,当前方案每个传感器按1小时分桶,对不变化的数值进行抽样处理,如果1小时内不变化,只存3个点。当前只实现了1组数据的实时入库和读取,后续要扩展可支持300组数据(每组5000-10000规模)采集最快0.1s一次。应该如何优化?谢谢老师
    2019-12-06
    1
  • 郑文峰
    分桶模式是真的实用、有效..
    2020-05-23
  • 追忆似水年华
    分桶模式太赞了,本质就是将那些数据量很大的字段,在不影响实际业务的前提下,通过“降维”,即将原本的一条数据一个文档,转变为一批数据一个文档。乍一看可能是用时间换空间,但很可能是既节约了空间,又没影响时间,很漂亮!
    2020-03-25
  • 密码123456
    提问。如果要求对时间进行排序。分页怎么做?如果不是查询一个航班,而是所有航班在一起。进行排序,分页怎么办?
    2020-03-03
  • 密码123456
    优势是减少读的次数及空间的占用,那劣势是什么呢?

    作者回复: 如果一个查询正好要跨越两个或多个桶,可能会略麻烦。比如说,我们每个小时的数据放在一个文档内,从00分到59分。但是如果你想要从15分到下个小时15分之间的数据来统计分析,就没那么直观了。

    2020-02-22
  • 初九
    这个数据写入的操作是每分钟往events插入当前分钟采集到的数据吗?
    2020-02-08
  • WING
    老师,如果有个需求是在地图上绘制飞机的某一次航班的行程轨迹,按小时分桶合适吗?

    作者回复: 这个取决于你的采样点。如果是每秒或者更频繁的话,可能就不太合适了,用分钟会好一点。

    2020-01-23
  • 确认过眼神
    分桶模式的边界可以是分钟、小时、天数,甚至月份、年份,如何根据实际场景找到这个边界、提高写入或查询的效率?
    2020-01-14
  • YoKate
    课程内容真不错,迫不及待的想看事务的介绍。看完就用到我的项目上去。
    2019-12-17
  • 😳
    这个模式真的很厉害啊.优化了这么多,每条数据重复的字段只存一次,不同的数据用文档存起来,很大的减少了数据量啊
    2019-12-15
  • PHP是世界上最好的需要
    如果按照分桶内的某些时间进行查询数据时,会不会影响查询速度?

    作者回复: 使用合适的索引(mongo支持桶里内嵌字段的索引)就可以。

    2019-12-09
    1
  • Aaron niu
    分桶太腻害了
    2019-12-07
  • 长期规划
    分桶模式不错
    2019-12-05
收起评论
看过的人还看
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

49讲 | 56686 人已学习

新人首单 ¥29.9 原价 ¥129
数据结构与算法之美

王争  前Google工程师

80讲 | 87185 人已学习

新人首单 ¥29.9 原价 ¥129
Elasticsearch核心技术与实战

阮一鸣  eBay Pronto平台技术负责人

100讲 | 21827 人已学习

新人首单 ¥29.9 原价 ¥129
趣谈网络协议

刘超  网易研究院云计算技术部首席架构师

51讲 | 45245 人已学习

新人首单 ¥19.9 原价 ¥99