Appleアプリのデータをデータベースに保存します(http://www.apple.com/itunes/affiliates/resources/documentation/itunes-enterprise-partner-feed.html)。
1つのタイプのクエリに対して最適化する必要があります。いくつかの条件を満たすすべてのアプリを検索します。基準:(1)アプリの平均評価。(2)アプリの評価数。(3)アプリでサポートされているデバイス。(4)アプリが販売されている国。(5)アプリの現在の価格。(6)アプリが無料になった日付。クエリは可能な限り高速である必要があります。クエリの例:「評価が600を超え、平均5つ星で、iPadとiPhoneをサポートし、米国で販売され、2日前に価格を0.00ドルに下げたすべてのアプリを検索します。」
アップルのスキーマに基づいて、すべての国の価格情報があります。アップルが100か国をサポートしていると仮定すると、各アプリの価格は国ごとに1つずつ、100になります。また、各アプリの過去の価格を保存する必要があります。つまり、価格が10回変更されたアプリの価格は1000になります(100か国を想定)。
3つの質問:
1)クエリを高速化するために、価格データをmongoに保存することをどのようにアドバイスしますか?現在、価格をオブジェクトの配列として保存することを考えています。各オブジェクトは次の3つの要素で構成されています。(1)日付。(2)国; (3)価格。
2)価格データをオブジェクトとして配列に格納する場合、価格データに対する検索を非常に高速にするために何をする必要がありますか。繰り返しになりますが、一般的な価格検索は、「米国のストアで2日後に価格が0.00ドルに下がったすべてのアプリを検索する」のようなものです。
3)データを保存する際に注意すべき落とし穴はありますか?