我最近使用MongoDB开展了一个项目。基本上,我网站的核心要素是“项目”。每个项目都将包含一个嵌套的“字符串”对象,该对象将包含大量字符串......因此,每个项目都非常庞大,可以接近一兆字节或更多。因此,我希望将项目放在他们自己的集合中。
我遇到的问题是我不确定如何将用户分配到项目中。用户是否应该包含他们注册的项目列表,或者项目是否应包含用户列表?我什么时候应该选择其中一个?还有更好的方法吗? (我有一段时间没有触及过MongoDB,所以我有点生疏了)
答案 0 :(得分:1)
我不能立刻想到两者之间有任何严重的停止差异。我认为维护用户端可能更容易:
因此,考虑到我想到的这些直接的事情,我可能会选择在用户中嵌入项目。
答案 1 :(得分:0)
看看http://www.mongodb.org/display/DOCS/Schema+Design。适用于您案例的指南是
通常,对于实体之间的“包含”关系,应选择嵌入。不使用链接时使用链接会导致数据重复。
如果用户可以注册多个项目,并且项目可以注册多个用户,则最好为项目和用户设置单独的集合。