Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
根据这篇文章,aggregation性能比mapReduce,
aggregation
mapReduce
但据我所知,聚合不能执行join涉及多个集合的类似操作,例如,当您想按用户年龄对付款进行排序时,这是必需的,它们位于两个不同的集合中。
join
aggregation在这些情况下有什么好的解决方案可以使用吗?
我的项目中有很多很多这样的要求,所以我想知道目前执行此操作的最佳实践是什么,或者mapReduce最新的 mongodb 的性能有多差。
提前致谢!
简短的回答:没有好的解决方案。
如果你需要连接,你不应该使用 Mongo。它明确不提供连接;您应该通过数据设计解决这个问题,方法是在写入时将数据非规范化到您的文档中,以便以您需要的方式查询它。在您的示例中,您将在创建付款文档并将其与您的用户记录相关联时将用户的年龄非规范化到付款文档中。这将让您执行预期的查询。
Mongo 不擅长对高度规范化的数据进行临时查询——它假设积极的非规范化和预知您将要执行的各种查询。如果您需要对高度规范化的数据进行临时查询,您可能应该考虑使用关系数据库。