【问题标题】:Mongo DB Storing ReferencesMongodb 存储引用
【发布时间】:2017-07-09 22:05:33
【问题描述】:

在 Mongo 环境中,将数据嵌入文档是有益的。

例如一个员工文档:

{
    {
         userid: 'someid',
         username: 'user1'
         isManager: true,
         subordinates: [
             {
                  userid: 'anotherid',
                  username: 'user2',
                  isManager: false
             }
         ],
         officeLocation: {
             officeId: 'someofficeid',
             officeName: 'Some Office'
         }
     },
     {
          userid: 'anotherid',
          username: 'user2',
          isManager: false,
          officeLocation: {
             officeId: 'someotherofficeid',
             officeName: 'Some Other Office'
          }
     }
}

还有办公文件:

{
     {
          officeid: 'someofficeid',
          officeName: 'Some Office'
     },
     {
          officeid: 'someotherofficeid',
          officeName: 'Some Other Office'
     }
}

因此,假设公司中的某个人认为他们不喜欢名称 Some Other Office,并且想将其更改为 Some Cool Office

当他们在办公室文档中进行更改时,我们如何知道要更新员工文档中所有嵌入的Some Other Office

似乎每次您从一个文档中获取一条数据并将其嵌入到另一个文档中的对象中时,两者之间的链接就会断开,然后您必须编写单独的查询来更新所有文档中的数据嵌入该对象的不同位置。

我喜欢嵌入文档而不是存储引用的想法,但是如果没有某种 2 路数据绑定,在更新信息时似乎不切实际。

有什么方法可以让我以两种方式绑定数据,还是有更简单的方法来对我的数据进行建模?

谢谢

【问题讨论】:

    标签: mongodb data-modeling database


    【解决方案1】:

    当您对信息进行规范化/非规范化建模时,我仍然对传统的 RDBMS 系统感兴趣。我不确定绑定,但是,如果您需要信息的“单一真实”,更好的方法是永远不要将信息存储在两个不同的地方。因此,在您的情况下,最好将 Office 信息存储到单独的文档中,然后通过 Id 链接它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-09
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多