我承认……谈到 NoSQL 世界,我缺乏很多理论概念。
我正在考虑将一些使用 Java+MySQL 的简单应用程序移植到 NodeJS+MongoDB(我发现 mongoose ORM 看起来真的很酷)。
我发现真正困难且记录较少的第一件事是映射多对多关系。
我首先阅读了 Mongo-DOCS:http ://www.mongodb.org/display/DOCS/Schema+Design
...然后潜伏在一些真实世界的信息中,我发现了很多这样的问答:在 Mongo 中对多对多连接建模数据?
有办法实现 M:N,太酷了!但后来我读到一些让我感到害怕和失望的东西:“老实说,如果你发现自己需要连接,我会选择关系数据库。 ”
好的!我明白了,但是....想象我有常见的 User + Roles + UserRoles 多对多模式,我使用embedding,我的意思是,我不使用另一个表模式作为角色,我只使用 User 和 all其中的角色数据
我需要:
- 查询数据库中的所有用户,也读取他们的角色数据;
- 查询数据库中刚刚可用的所有角色,例如,用于选择在用户创建中关联的角色;
第一点是微不足道的,但第二点呢?
您会告诉我,我需要另一个表模式“角色”并将角色数组存储在“用户”中,其中包含角色的 ID,但是您会告诉我这是一个关系世界!
你是在告诉我它不适合 NoSQL 数据库吗?那么会是什么呢?