gpt4 book ai didi

sql - 在 MongoDB (NoSQL) 中存储关系数据

转载 作者:可可西里 更新时间:2023-11-01 09:35:34 26 4
gpt4 key购买 nike

我一直在努力了解 NoSQL,我确实看到了将数据嵌入文档的好处。

我不明白的是,如果必须是关系数据,如何存储数据,希望有人能弄清楚。

例如。

我有很多用户。他们都在购买产品。因此,每次他们购买产品时,我们都会将其添加到 mongo 中的用户文档下,因此它是嵌入式的,一切都很棒。

我遇到的问题是,当与该产品相关的某些内容发生变化时。

假设用户 A 购买了一辆名为“Porsche”的汽车。然后,我们在用户配置文件下添加对它的引用。然而,在一个奇怪的事件中,保时捷被法拉利收购。

您现在要做什么,更新每条记录并将名称从 Porsche 更改为 Ferrari?

通常在 SQL 中,我们会创建 3 个表。一种用于用户,一种用于汽车(描述、型号等),一种用于将用户映射到购买。

您是否为 Mongo 做同样的事情?看起来如果你沿着这条路走下去,你试图让 Mongo 以 SQL 的方式做事,这不是它的目的。

我可以理解某些数据非常适合嵌入(地址、联系方式、评论等),但是当您需要引用可以并且需要定期更改的数据时会发生什么?

我希望这个问题很清楚

最佳答案

DBRefs/Manual References 专门用于解决此问题。无需手动将数据添加到每个文档,然后需要在某些内容发生变化时进行更新,您可以存储对另一个集合的引用。有关详细信息,请参阅 mongoDB 文档。

References in Mongo

然后您需要做的就是更新引用集合,并且更改将反射(reflect)在所有下游位置。

关于sql - 在 MongoDB (NoSQL) 中存储关系数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33739896/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com