0

我有两个集合:一个包含约 7.600.000 个文档,其中包含有关可用旅行的信息,另一个包含约 5000 个文档,其中包含有关地区、城市和国家数据的酒店信息。trips 集合具有特定酒店的 id 字段。

我的问题是,我必须查询这两个集合以获取有关某些旅行的信息:来自酒店集合的位置信息以及来自旅行集合的价格、人数等其他信息。

我已经阅读了关于合并两个集合的 mapreduce 策略,但我认为它不适合我的情况,因为如果我使用酒店 ID 链接它们,它只会创建 5000 个文档?可能吗?

另一种方法是在旅行集合中两次嵌入酒店信息,但在这种情况下我害怕更新酒店信息。

请给我一些建议,并告诉我哪种方法是最好的?

4

1 回答 1

0

你有很多选择。这一切都是关于决定在哪里“加入”数据。选项:

  1. 加入前端。也许先带回所有旅行,然后使用 AJAX 调用来懒惰地加载酒店信息。(假设是一个 Web 应用程序)。重点是,两个电话可能不是最糟糕的事情!

  2. 在 Mongo 中使用 map/reduce 来输出你想要的数据。它不会实时工作,但它会给你正确的结果。它不限于 5,000 个文档。您可以从更大的旅行收藏开始,并带来您需要的东西。它非常灵活。

  3. 嵌入酒店信息。请注意,如果酒店信息不经常更改,您只想嵌入酒店信息。如果它不断变化,我会考虑保持原样。

对于我使用 Mongo 所做的很多工作,我发现两次调用并没有那么糟糕——尤其是在处理快速变化的数据时。

于 2013-04-23T23:00:40.300 回答