【问题标题】:Designing MongoDB model?设计 MongoDB 模型?
【发布时间】:2012-02-23 02:22:28
【问题描述】:

我有一个关于在 mongo db 中设计数据模型的概念性问题。 我有一些“列表”的记录。每个列表都是带有 id、descr、createdBy 等字段的“一行”记录。但现在我要求每个“列表”都可以与其他用户共享。设计/重新设计模型的最佳方法是什么,所以当用户登录查看他创建的“列表”和与他共享的“列表”时?我正在考虑创建新字段“sharedWith”,其中与“list”共享的所有用户名都用逗号(或其他)分隔。然后当请求在该字段中进行搜索时。但不知何故,这种方法在我看来并不是很有用。你能给我一些建议或指导吗? 我正在使用带有猫鼬的nodejs。

谢谢!

【问题讨论】:

    标签: node.js mongodb model


    【解决方案1】:
    User: {
      ...
      myLists: Array<ListObject>
      sharedLists: Array<ListObject>
    };
    
    ListObject: {
      ...
      owner: User,
      sharedWith: Array<User>
    };
    

    这对我来说似乎是一个明智的设计。

    【讨论】:

    • 感谢您的回答 Raynos。但是,如果对与用户共享的 ListObject 进行了更改,那么如何进行更改以及在 sharedLists 中进行更改?或者只是在这两个地方更新它? (对不起,如果这个问题很愚蠢,但我对 mongodb 有点陌生)
    • @countnazgul 你在这两个地方都更新了。这称为非规范化。这就是您使用 mongoDB 所做的,因为它可以为您提供速度
    猜你喜欢
    • 1970-01-01
    • 2016-09-21
    • 2021-04-02
    • 1970-01-01
    • 2015-06-27
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多