首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mongo DB存储引用

Mongo DB存储引用
EN

Stack Overflow用户
提问于 2017-06-30 21:17:15
回答 1查看 46关注 0票数 0

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

因此,以员工文档为例:

代码语言:javascript
运行
复制
{
    {
         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'
          }
     }
}

和办公文档:

代码语言:javascript
运行
复制
{
     {
          officeid: 'someofficeid',
          officeName: 'Some Office'
     },
     {
          officeid: 'someotherofficeid',
          officeName: 'Some Other Office'
     }
}

因此,假设公司中有人决定不喜欢Some Other Office这个名称,并希望将其更改为Some Cool Office

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

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

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

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

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-06-30 21:22:51

当您对信息进行规范化/非规范化建模时,我会想起传统的RDBMS系统。我不确定绑定,但是,如果您需要一个信息的“单个true”,更好的方法是永远不要将信息存储在两个不同的位置。因此,在您的示例中,最好将Office信息存储在单独的文档中,并通过Id将其链接起来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44847456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档