我有一个高度规范化的数据模型。目前我通过存储_id
和运行顺序查询来使用手动引用来从最深的集合中获取详细信息。
引用是单向的,流程大约有5-6个集合。对于一个特定的用例,我不得不通过查询更高级别集合中的后续“_id”来查询最深的集合。所以从技术上讲,每次运行
时我都会访问数据库db.collection_name.find(_id: ****).
我的主要目标是优化读取而不会严重影响其他集合的原子性。我已经阅读了关于去规范化的内容,但这对我来说没有意义,因为我想保留一个选项来改变基数,因此想要完全保留一个单独的集合。
我最初考虑使用MapReduce从后面进行聚合,并且主要针对特定用例创建一个集合。但即使这听起来也不那么好。
在关系数据库中,我将破坏子查询中的查询并执行连接以获取与初始结果相交的数据集。由于mongodb不支持连接,所以我很难搞清楚任何事情。
如果您之前遇到过类似的事情,或者想知道如何解决此问题,请提供帮助。