美文网首页我爱编程
mongo设计模式(一)

mongo设计模式(一)

作者: 不如做一只猫 | 来源:发表于2018-08-08 11:34 被阅读191次

mongodb 设计模式

一对多设计方案

一对很少

使用嵌套结构
eg: 一个人有多个联系地址 数十不过百

{
  "name": "jeff",
  "addresses": [
    {"street": "123", "city": "sz", "_id": "id1"},
    {"street": "5th ", "city": "sh", "_id": "id2"}
  ]
}

一对很多 数百不过千

eg: 一个产品由数百个零部件构成 使用间接引用,将零件的id作为数组存放在产品文档中
part

[
  {"name": "1","_id": "id1"},
  {"name": "1","_id": "id1"}
]

product

{
  "name": "car",
  "parts" : [
    "id1",
    "id2",
    "id3"
  ] 
}

一对非常多,成千数万

eg1: weibo 里面following 和 followers 可以达到数十万,数百万
使用数组可能会超过一个文档最大16M的限制
mongodb数组太大会验证影响性能
可以专门建立一个collection来描述关系用户1-N关注者
同时为了避免需要得到关注和粉丝数量的时候,不去count一次,在用户对象里面添加两个字段
一个是关注数,另一个是粉丝数,当变化时就更新一下
user

[
    {"user": "kimi","follower_count": 2, "following_count": 0},
    {"user": "tommon","follower_count": 0, "following_count": 2},
    {"user": "tony",  "follower_count": 1, "following_count": 0}
]
[
  {"user": "kemi","follow": "tommon"},
  {"user": "kemi","follow": "tommon"},
  {"user": "tony","follow": "kemi"}
]

eg2:

相关文章

  • mongo设计模式(一)

    mongodb 设计模式 一对多设计方案 一对很少 使用嵌套结构eg: 一个人有多个联系地址 数十不过百 一对很多...

  • mongo回顾(三:索引B+树)

    上回提到mongo怎么进行模式设计。今天就来聊聊mongo的索引B树。 https://docs.mongodb....

  • mongodb索引

    mongodb的速度很大程度上取决于mongo的hash设计,而与此关系最密切的就是mongo的索引。 查看索引 ...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • Native mongoDB(1)-权限、规则

    1.安全认证模式正常启动 mongod --auth --dbpath /usr/mongo/data --log...

  • mongodb 数据操作基础命令

    (1)我的电脑启动mongo服务:cmd模式下: mongod --dbpath E:\mongodb\data\...

  • Mongo副本模式搭建

    1. 环境 准备了三台机器(CentOS Linux release 7.2.1511 (Core)): 2. 配...

  • 第1章 设计模式概述

    一、设计模式的概念 二、设计模式的历史 三、设计模式的要素 四、设计模式的分类 ■ 创建型设计模式 ■ 结构型设计...

  • 设计模式三、工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 工厂模式 在一...

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

网友评论

    本文标题:mongo设计模式(一)

    本文链接:https://www.haomeiwen.com/subject/zkvtbftx.html