0

我必须从各种社交媒体中保存用户的不同个人资料。例如,用户可能有 1 个 facebook 和 2 个 twitter 个人资料。如果我保存每个配置文件,它将作为新文档插入到不同的集合中,如 facebook 和 twitter 是一个集合,我将如何将此文档与另一个文档相关联。我在 mongodb 中使用了点表示法。如果我关联同一用户的 facebook 和 twitter 个人资料意味着很容易获取记录。我将如何设计架构?还有how would i avoid duplication?有没有可能使用 facebook id twitter id 作为唯一的?我是新手mongoDB。我将如何加入来自不同集合的文档

4

1 回答 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 回答