相关疑难解决方法(0)

如何在MongoDB中组织多对多的关系

我有两张桌子/收藏品; 用户和组.用户可以是任意数量的组的成员,用户也可以是任意数量的组的所有者.在关系数据库中,我可能有第三个名为UserGroups的表,其中包含UserID列,GroupID列和IsOwner列.

我正在使用MongoDB,我确信在文档数据库中存在这种关系的不同方法.我应该将Users表中的groups和groups-as-owner列表作为两个ObjectID数组嵌入吗?我是否还应该将Groups表中的成员和所有者列表存储为两个数组,从而有效地镜像导致重复关系信息的关系?

或者,桥接UserGroups表是文档数据库中用于多对多关系的合法概念?

谢谢

many-to-many relational-database mongodb document-database

58
推荐指数
2
解决办法
2万
查看次数

CouchDB或MongoDB中的多对多关系

我有一个MSSQL数据库,我正在考虑移植到CouchDB或MongoDB.我在SQL数据库中有多对多的关系,它在外部参照表中有数十万行,对应于关系两侧表中的数万行.CouchDB和/或MongoDB是否能够处理这些数据,以及为性能查询格式化相关文档的最佳方法是什么?非常感谢.

many-to-many couchdb mongodb

11
推荐指数
1
解决办法
7960
查看次数

与MongoDB有很多很多关系

我已经看过很多关于如何与MongoDB建立多对多关系的帖子,但没有一个提到规模.例如这些帖子:

MongoDB多对多关联

如何在MongoDB中组织多对多的关系

我可以通过这种设置看到的问题是MongoDB的16MB文档限制.说我有users,groups和posts.posts有一个相关的group和许多user可以喜欢它的s.A中group有很多posts,很多user都可以遵循它.A user可以有许多喜欢post的,可以跟随很多groups.如果我用关系数据库构建它,我会这样设置:

user:
    user_id
    username

post:
    post_id
    group_id
    message

group:
    group_id
    name

post_likes:
    post_id
    liked_user_id

group_followers:
    group_id
    follower_user_id
Run Code Online (Sandbox Code Playgroud)

从理论上讲,a group可以有一个极小数量的posts和users,a post可以拥有无​​限数量的喜欢users,并且如果在SQL查询中正确完成分页,则user可以拥有无​​限数量的喜欢posts和groups .

如何设置MongoDB的模式以便实现这种规模?

mongodb

8
推荐指数
1
解决办法
2076
查看次数

了解MongoDB中的多对多关系以及如何取消引用集合

我花了一些时间研究MongoDB替代方案,以实现多对多关系,包括几个stackoverflow文章(这里这里)和这些幻灯片.

我正在使用MEAN堆栈创建一个应用程序,我正在尝试确认我的架构设置和取消引用对象集合的最佳实践.

我在用户和会议之间有一个基本的多对多关系(考虑为用户安排会议,其中用户可以在许多会议中,会议包含多个用户).

鉴于我的用例,我认为最好使用引用而不是嵌入.我相信(从我读过的内容),只有当我的会议有一个会议独有的用户时才使用嵌入会更好.就我而言,这些相同的用户在会议中共享.此外,虽然更新用户很少(例如,更改用户名,密码),我仍然觉得使用参考感觉是正确的 - 虽然我对意见持开放态度.

假设我使用了引用,我有以下(简化)模式:

var MeetingSchema = new Schema({
  description: {
    type: String,
    default: '',
    required: 'Please fill in a description for the meeting',
    trim: true
  },
  location: {
    type: String,
    default: '',
    required: 'Please fill in a location for the meeting',
    trim: true
  },
  users: [ {
    type: Schema.ObjectId,
    ref: 'User'
  } ]
});

var UserSchema = new Schema({
    firstName: {
        type: String,
        trim: true,
        default: '',
        validate: [validateLocalStrategyProperty, 'Please …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb mean-stack

3
推荐指数
1
解决办法
1163
查看次数