mongo设计模式(一)

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:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,117评论 2 89
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,136评论 0 10
  • 【日更031】 今天的一条新闻:四川眉山的一对夫妻为了让就读于当地最贵的私立幼儿园的儿子有“更多的选择和更高的起点...
    唐斩2086阅读 1,176评论 0 0
  • 今日关键词:休息日-当然书店啦 太古里-鞋履展 最惊艳我的香奈儿 经典又不失典雅 珍珠恰到好处的点缀 每个女生都该...
    小尾巴巨人阅读 2,870评论 0 0
  • 来世 我想和你 是天际间比翼的信天翁 不在乎曾经拥有 只想要天长地久 来世 我想和你 是月光里藏匿的残星 哪怕牛郎...
    三条命的猫阅读 903评论 0 6