【发布时间】:2014-09-19 07:52:21
【问题描述】:
我决定将我的数据库从 MySQL 迁移到 Mongo,因为大多数时候,我的数据不是结构化的。它让我有可能在传统 SQL 中过于复杂。
我目前面临一个问题,以及如何在 NoSQL 中处理传统的 SQL 关系模型。我读过很多次,NoSQL 不是为处理关系而设计的。我是否需要将它们作为数组添加到具有关系的文档中?
这是让我陷入困境的一种情况。在 SQL 中,我有一个单独的表用于 oauth 访问令牌,其中包含 user_id、client_id、access_token、expires 作为其属性。用户和 access_token 之间是 1-N 关系。我将如何在 NoSQL 中做到这一点?通过添加数组字段 oauth_tokens?如果这样做,如何在数组中搜索令牌?如何查询
search for a document where the _id is $user_id and there is an element
with $token in the access_tokens array?
【问题讨论】:
-
您可以在 mongodb 中使用 map-reduce 概念与两个不同的集合形成关系。
-
@KumarKailash 可能你做不到。 MongoDB 一次处理 一个 集合,它“故意”这样做是有原因的。这个问题需要提供一个具体的点和示例问题来解决,否则它基本上“太宽泛”了。因此,如果作者想要一个真实的答案,那么建议实际描述该问题而不是要求概括。
-
在我问这个问题之前,我对 mongo 中的“关系”的了解几乎为零;在谷歌搜索和尝试和测试之后,我有了一点知识。对于那个很抱歉。我得到了我现在需要的东西,但我很确定在不久的将来我会在这里问一个类似的问题,届时我会非常具体。