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