gpt4 book ai didi

mongodb - 如何对 noSql 数据库中的数据进行建模

转载 作者:行者123 更新时间:2023-12-03 00:37:45 25 4
gpt4 key购买 nike

嗨,我对同一主题有点困惑。例如,在我的场景中。如果我有一个用户表和另一个订单表。我在 nosql 数据库中下了一个订单,那么我应该如何维护订单中的用户信息表。

提前致谢

最佳答案

SQL 和 NoSQL 是完全不同的数据库概念。 SQL 中我们所说的“表”被“集合”替代,表中我们所说的“行”被“文档”替代。

清楚地记住这个概念后,就很容易理解 NoSQL 数据库的工作原理了。

你有类似于SQL的CRUD操作,并且你不会有诸如Join、或主键和外键关系之类的概念。

数据以 JSON/BSON 的形式存储,就像从任何形式的客户端接收的原始 javascript 对象一样。(无论是 android 还是 webapp)。

一个 SQL 表由以下部分组成(例如):

NAME|ADDRESS|AGE|SALARY
ABC |XYZ |23 |50000

在 NoSQL 集合中变成:

{
"NAME":"ABC",
"ADDRESS":"XYZ",
"AGE":23,
"SALARY":50000
}

因此,要回答如何更新订单表中的用户名的问题,您必须想出一个完全不同的架构。我们在这里使用嵌套对象的概念。

在 NoSQL 场景中,您的用户“集合”将包含用户所下订单的列表,作为用户集合内的嵌套对象作为字段。因此,如果您更新用​​户“集合”中的用户名,就相当于对该用户到目前为止所下的所有订单执行更新操作。

所以你的架构可能看起来像(例如):

{
username:"abc",
orders:[{
order_number:1,
order_name:"abcd"
},
{
order_number:2,
order_name:"xyza"
}]
}

Mongodb 是最简单的 NoSQL 数据库形式。这是深入研究 NoSQL 的良好起点。

有关如何使用 mongodb 的更多信息,请查看:https://docs.mongodb.com/

关于mongodb - 如何对 noSql 数据库中的数据进行建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49983808/

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