【发布时间】:2013-02-26 21:46:09
【问题描述】:
我们将苹果应用数据存储在数据库中 (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 美元的应用。”
基于 apple 架构,每个国家/地区都有价格信息。假设苹果支持 100 个国家,每个应用程序将有 100 个价格——每个国家一个。我们还需要存储每个应用的历史价格,这意味着具有 10 次价格变化的应用将有 1000 个价格(假设 100 个国家/地区)。
三个问题:
1) 您如何建议我们将价格数据存储在 mongo 中以快速查询?现在,我们正在考虑将价格存储为一个对象数组。每个对象由三个元素组成: (1) 日期; (2) 国家; (3) 价格。
2) 如果我们将价格数据作为对象存储在数组中,我们需要做什么才能非常快速地搜索价格数据。同样,常见的价格搜索类似于“在美国商店中查找所有在 2 天内再次将价格降至 0.00 美元的应用程序。”
3) 在存储数据时我们应该注意哪些问题?
【问题讨论】:
标签: mongodb data-modeling mlab mongohq database