Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mongo数据库模式_Java_Mongodb - Fatal编程技术网

Java Mongo数据库模式

Java Mongo数据库模式,java,mongodb,Java,Mongodb,我必须从各种社交媒体中保存用户的不同个人资料 用户可能有1个facebook和2个twitter个人资料。如果我保存每个配置文件 它作为一个新文档插入到不同的集合中,如facebook和twitter是一个集合,我将如何将此文档与其他文档关联。 我在mongodb中使用了点符号。如果我将同一用户的facebook和twitter档案关联起来,意味着 获取记录很容易。我将如何设计模式?还有如何避免重复?有没有可能使用facebook id twitter id是唯一的吗?我是新来的mongoDB。

我必须从各种社交媒体中保存用户的不同个人资料 用户可能有1个facebook和2个twitter个人资料。如果我保存每个配置文件 它作为一个新文档插入到不同的集合中,如facebook和twitter是一个集合,我将如何将此文档与其他文档关联。 我在mongodb中使用了点符号。如果我将同一用户的facebook和twitter档案关联起来,意味着 获取记录很容易。我将如何设计模式?还有
如何避免重复
?有没有可能使用facebook id
twitter id是唯一的吗?我是新来的
mongoDB
。如何连接来自不同集合的文档这是一个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})
您可以使用希望在用户级别强制唯一性的任何字段


希望有帮助。

太好了。但保存后如何强制执行索引?您可以指定{unique:true,dropDups:true},它将添加索引并删除与索引冲突的任何文档。这是否回答了您的问题?它说这不是一个函数。我使用了db.user.twitter\u profiles.enforceIndex({user\u id:1},{unique:true})
对象user.twitter\u profiles的属性“enforceIndex”不是函数
我使用了ensureIndex而不是enforceIndex