1

我正在将我的应用程序数据库从 MySQL 迁移到 NoSQL(MongoDB)。但是,我对如何构建我的 MongoDB 有点困惑。

在我当前的 MySQL 设置中,我有两张表,一张用于用户,一张用于日历。每个用户和日历都有一个唯一的 ID。每个用户条目都包含与该用户关联的日历 ID 的列表。每个日历条目还包含创建它的用户的 ID。

我面临的问题是我有两种情况:对于登录控制台,我必须快速向用户显示他/她创建的所有日历;对于前端网站,我需要显示所有可用的日历及其作者。

在 MySQL 中,我会使用 JOIN 快速查询这些数据。如何在 MongoDB(或任何 NoSQL 数据库)中实现相同的功能?

4

1 回答 1

2

你几乎得出了结论。只有两个选项没有连接。

  1. 非规范化(存储嵌入在用户文档中的日历)
  2. 进行单独的查询(首先加载用户,然后是他的日历)

两种方法都有其优点和缺点,已经讨论了很多次(尝试谷歌搜索“mongodb embed or reference”)

简而言之:嵌入让您更快地读取,引用为您提供更丰富的查询和更轻松/更快的写入。

于 2012-07-06T11:41:32.920 回答