我们将苹果应用程序数据存储在数据库中(http://www.apple.com/itunes/affiliates/resources/documentation/itunes-enterprise-partner-feed.html)。
我们想针对一种查询进行优化:查找所有满足某些条件的应用程序。标准:(1)应用的平均评分;(2) 应用评分数量;(3) 应用支持的设备;(4) 应用销售国家;(5) 应用当前价格;(6) 应用程序免费的日期。查询应该尽可能快。示例查询:“查找所有评分超过 600、平均 5 星、支持 iPad 和 iPhone、在美国销售且两天前价格降至 0.00 美元的应用程序。”
基于苹果模式,每个国家都有价格信息。假设苹果支持 100 个国家,每个应用程序将有 100 个价格——每个国家一个。我们还需要存储每个应用程序的历史价格,这意味着具有 10 次价格变化的应用程序将有 1000 个价格(假设 100 个国家/地区)。
三个问题:
1)您如何建议我们将价格数据存储在 mongo 中以快速查询?现在,我们正在考虑将价格存储为对象数组。每个对象由三个元素组成: (1) 日期;(2) 国家;(3)价格。
2) 如果我们将价格数据作为对象存储在一个数组中,我们需要做什么才能非常快速地搜索价格数据。同样,常见的价格搜索类似于“在美国商店中查找所有在 2 天内再次将价格降至 0.00 美元的应用程序”。
3)在存储数据时我们应该注意什么问题?