Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB存储引用_Mongodb_Data Modeling_Database - Fatal编程技术网

MongoDB存储引用

MongoDB存储引用,mongodb,data-modeling,database,Mongodb,Data Modeling,Database,在Mongo环境中,在文档中嵌入数据是有益的 例如,员工文档: { { userid: 'someid', username: 'user1' isManager: true, subordinates: [ { userid: 'anotherid', username: 'user2',

在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'
     }
}
和办公室文件:

{
    {
         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'
     }
}
因此,让我们假设公司中的某个人决定他们不喜欢某个办公室的名称,他们想把它改成某个很酷的办公室

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

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

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

有没有什么方法可以将数据绑定为两种方式,或者有没有更简单的方法来对数据进行建模


谢谢

当您建模以规范化/非规范化信息时,它让我想起了传统的RDBMS系统。我不确定绑定,但是,如果您需要信息的“单个true”,更好的方法是永远不要将信息存储在两个不同的位置。因此,在您的情况下,最好将办公室信息存储到一个单独的文档中,并通过Id链接它