Mongo DB 存储引用



在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 方式数据绑定,在更新信息时似乎不切实际。

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

谢谢

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

最新更新