2015-10-19 129 views
0

我有一个与用户集合和追随者集合的mongo数据库。 Users集合在Amazon s3中存储名称,用户名和profile_pic文件位置。 “追随者”集合存储users_id和followee(包括其_id,用户名和profile_pic文件在内)的信息。虽然_id和profile_pic永远不会改变,但用户可以选择使用。因此,该文档不会使用最新的用户名进行更新。这在mysql中不是问题,因为它的关系。作为Mongodb的新手,人们如何解决这类问题?如果我需要获得全部300个用户朋友或更多用户,则通过300个电话获取个人用户名似乎并不合理。任何帮助非常感谢。谢谢!关系更新Mongodb文档

回答

2

我觉得你可以存储用户的个人资料和追随者在一个用户收集这样的:

{ 
_id: 'T4Y...AC', // base64-encoded ObjectId 
name: 'Rick', 
profile: { ... username, profile_pic , etc. ... }, 

followers: ["T4Y...AD", "T4Y...AF", "T4Y...AI"] 

} 
+0

这是一个可能性,我打算把它们嵌入避而远之,因为我希望保持灵活性的最高金额当操纵数据时。无论如何解决问题,如果用户更新他们的用户名,那么它不符合文档。因为mongo不是关系型的,那么如果用户改变了他们,我会得到错误的用户名?我怎样才能克服这个问题? –

+0

我改变了结构。你只能使用_id的用户,这样你就不需要同步。 –

+0

如果您使用mongodb创建社交网络。在** mongodb应用设计模式**书中有非常好的设计模式来实现这一点。 –