在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
。
当他们在office文档中进行更改时,我们如何知道也要更新员工文档中嵌入的所有Some Other Office
?
似乎每次您从一个文档中提取一段数据并将其嵌入到另一个文档中的对象中时,两者之间的链接就会断开,然后您必须编写单独的查询来更新嵌入该对象的所有不同点的数据。
我喜欢嵌入文档的想法,而不是存储引用,但如果没有某种双向数据绑定,当涉及到更新信息时,这似乎不切实际。
有没有什么方法可以让我以两种方式绑定数据,或者有没有一种更简单的方法来建模我的数据?
谢谢
发布于 2017-06-30 21:22:51
当您对信息进行规范化/非规范化建模时,我会想起传统的RDBMS系统。我不确定绑定,但是,如果您需要一个信息的“单个true”,更好的方法是永远不要将信息存储在两个不同的位置。因此,在您的示例中,最好将Office信息存储在单独的文档中,并通过Id将其链接起来。
https://stackoverflow.com/questions/44847456
复制相似问题