【问题标题】:Updating Mongodb Document Relationally以关系方式更新 Mongodb 文档
【发布时间】:2016-01-18 05:36:34
【问题描述】:

我有一个 mongo 数据库,其中包含用户集合和关注者集合。 Users 集合在 Amazon s3 中存储名称、用户名和 profile_pic 文件位置。 Followers 集合存储了 users_id 和被关注者(他们的追随者)的信息,包括他们的_id、用户名和 profile_pic 文件。虽然 _id 和 profile_pic 永远不会改变,但如果用户选择,用户名可以。因此,不会使用最新的用户名更新文档。这在 mysql 中不是问题,因为它是关系型的。刚接触MongoDB,人们如何解决这类问题?如果我需要让所有 300 个用户的朋友或更多,我似乎不合理拨打 300 个电话来获取个人用户名。非常感谢任何帮助。谢谢!

【问题讨论】:

    标签: mysql mongodb


    【解决方案1】:

    我认为您可以像这样将用户个人资料和关注者存储在一个用户集合中:

    {
    _id: 'T4Y...AC', // base64-encoded ObjectId
    name: 'Rick',
    profile: { ... username, profile_pic , etc. ... },
    
    followers: ["T4Y...AD", "T4Y...AF", "T4Y...AI"]
    
    }
    

    【讨论】:

    • 这是一种可能性,我正在考虑远离嵌入它们,因为我希望在处理数据时保持最大的灵活性。不管这如何解决问题,如果用户更新他们的用户名,那么它与文档不对应。因为 mongo 不是相关的,所以如果用户更改了他们的用户名,我会得到错误的用户名吗?我该如何克服这个问题?
    • 我改变了结构。你可以只取用户的_id,这样你就不需要同步了。
    • 如果您使用 mongodb 创建社交网络。 mongodb 应用设计模式一书中有很好的设计模式来实现这一点。
    • 对不起,我是 mongo 的新手,来自 mysql 背景,我将如何使用他们的 id 获取用户的数据?在一个人的关注者列表中,我仍然需要显示关注者的用户名。
    • 只是 db.collection.find ("_id":"T4Y...AD")
    猜你喜欢
    • 2018-03-02
    • 2018-07-28
    • 2020-03-21
    • 2011-08-04
    • 1970-01-01
    • 2018-06-01
    • 2014-12-06
    • 2021-06-20
    相关资源
    最近更新 更多