我必须从各种社交媒体中保存用户的不同个人资料。例如,用户可能有 1 个 facebook 和 2 个 twitter 个人资料。如果我保存每个配置文件,它将作为新文档插入到不同的集合中,如 facebook 和 twitter 是一个集合,我将如何将此文档与另一个文档相关联。我在 mongodb 中使用了点表示法。如果我关联同一用户的 facebook 和 twitter 个人资料意味着很容易获取记录。我将如何设计架构?还有how would i avoid duplication
?有没有可能使用 facebook id twitter id 作为唯一的?我是新手mongoDB
。我将如何加入来自不同集合的文档
问问题
109 次
1 回答
1
这是一个 ruby 实现,但希望您能够将模式逻辑转换为您的 java 代码。
class User
has_one :facebook_profile
has_one :twitter_profile
end
class TwitterProfile
belongs_to :user
end
class FacebookProfile
belongs_to :user
end
您可以对集合强制执行唯一索引,如下所示:
db.twitter_profiles.ensureIndex({user_id: 1 }, {unique: true})
db.facebook_profiles.ensureIndex({user_id: 1}, {unique: true})
您可以使用任何您想在用户级别强制执行唯一性的字段。
希望有帮助。
于 2013-08-20T06:48:59.723 回答