MongoDB 全家桶
mongodump / mongorestore
- 类似于 MySQL 的 dump/restore 工具
- 可以完成全库 dump:不加条件
- 也可以根据条件 dump 部分数据:-q 参数
- Dump 的同时跟踪数据就更:–oplog
- 操作
mongodump -h 127.0.0.1:27017 -d test -c test
mongorestore -h 127.0.0.1:27017 -d test -c test xxx.bson
模型设计基础
关系模型 vs 文档模型
MongoDB 文档模型设计三步曲
第一步:建立基础文档模型
- 根据概念模型或者业务需求推导出逻辑模型 – 找到对象
- 列出实体之间的关系(及基数) - 明确关系
- 套用逻辑设计原则来决定内嵌方式 – 进行建模
- 完成基础模型构建
文档模型设计之二:工况细化
- 关注
- 最频繁的数据查询模式
- 最常用的查询参数
- 最频繁的数据写入模式
- 读写操作的比例
- 数据量的大小
- 时候该使用引用方式
- 内嵌文档太大,数 MB 或者超过 16MB
- 内嵌文档或数组元素会频繁修改
- 内嵌数组元素会持续增长并且没有封顶
- MongoDB 引用设计的限制
- MongoDB 对使用引用的集合之间并无主外键检查
- MongoDB 使用聚合框架的 $lookup 来模仿关联查询
- $lookup 只支持 left outer join
- $lookup 的关联目标(from)不能是分片表
文档模型设计之三:模式套用
-
- 更多的 MongoDB 设计模式
设计模式集锦
- 大文档,很多字段,很多索引
- 解决方案: 列转行
-
- 模型灵活了,如何管理文档不同版本
- 问题: 统计网页点击流量
- 问题: 业绩排名,游戏排名,商品统计等精确统计
- 解决方案: 用预聚合字段
- 模式小结:预聚合
-