为了账号安全,请及时绑定邮箱和手机立即绑定

mongo设计模式(一)

标签:
MongoDB

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"}
]



作者:不如做一只猫
链接:https://www.jianshu.com/p/e53c6ade7c27


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消