【发布时间】:2012-09-10 14:29:56
【问题描述】:
我是 noSQL 数据库 (MongoDB) 的新手,我不知道如何组织集合。我有一个用户系统,每个用户都有:
- _id
- 用户名
- 密码
- ...(更多基础数据)
- 朋友
- 信誉积分
- 信誉点历史记录
- 通知
- 已加入的用户组
基本数据通常存储在集合users中,但我不知道如何存储朋友列表等复杂数据。
我应该在每个用户对象中(在用户集合中)存储一个_id数组之类的朋友,还是应该创建一个新集合来只存储朋友?如果我创建这个新集合,它应该像一个用户的 _id 及其朋友的数组,或者像用户 => 朋友 _id 这样的对。
通知和历史记录也是如此。我和朋友有同样的问题,但是这些情况下数组的大小可能要大得多,所以使用新集合的想法更强烈。
【问题讨论】:
-
我认为Designing MongoDB Schemas with Embedded, Non-Embedded and Bucket Structures 上的这篇博文对一些相关的架构设计注意事项有帮助。
标签: javascript node.js mongodb