MongoDB でモデル化したい株価データがいくつかあります。論理的には、各株価には日付、銘柄名、価格が関連付けられています。アプリケーションの主な目的の 1 つは、株価の日々の変化をモデル化することです。
この問題に関連して 2 つの質問があります。
1) MongoDB で実行するクエリの種類を考えると、MongoDB でこの種のデータをモデル化する最良の方法は何でしょうか。
アップデート!!!少し実験を行った結果、データを非正規化し、適切な列インデックスがあることを確認することにしました。私が実行していたタイプのクエリのデータを入れ子にしても、実際にはパフォーマンスの違いは見られませんでした。また、集計ルーチンを作成するプロセスが複雑になりました。Raxitさん、アドバイスありがとうございます!
2) 与えられた 1) MongoDB でこれらの毎日の変更スタイルのクエリを記述する最良の方法は何ですか?
したがって、今では、日付と在庫ごとに 1 つのドキュメントがあります。
{
{"stock":"Bob",
"date":"2012-12-01",
"price":99.99
},
{"stock":"Bob",
"date":"2012-12-02",
"price":99.99
},
{"stock":"Bob",
"date":"2012-12-03",
"price":99.99
},
{"stock":"Ted",
"date":"2012-12-01",
"price":99.99
},
{"stock":"Ted",
"date":"2012-12-02",
"price":99.99
},
{"stock":"Ted",
"date":"2012-12-03",
"price":99.99
},
.
.
.
}
2についての私の考え:
株価の日々の変化を表示するレポートを生成したいと考えています。ドキュメント サイズの制限があるため、これを分割して、1 株あたり、1 年あたりなどのデルタに分割する必要があるかもしれませんが、それは実装の詳細です。基本的に、次の形式のドキュメントを出力したいと考えています。
{
{"stock":"Bob",
"prices": {[{"fromDate":"2012-12-01","toDate":"2012-12-02","delta":-1.0},
{"fromDate":"2012-12-02","toDate":"2012-12-03","delta":-1.0},
.
.
.]}
},
{"stock":"Ted",
"prices": {[{"fromDate":"2012-12-01","toDate":"2012-12-02","delta":1.0},
{"fromDate":"2012-12-02","toDate":"2012-12-03","delta":1.0},
.
.
.]}
},
.
.
.
}
理想的には、このデータをアドホックに返すことができるようにしたいと考えています。map-reduce を使用してこれを行うことができると確信していますが、新しい集計フレームワークを使用してこれを行う方法があるかどうか疑問に思っていましたか? mongodb の調査を開始する前は、このようなモデリングの変更は一般的な使用例ではないと思い込んでいましたが、これまでのところ、そのようなものに出くわしたことはありません。
あなたが与えることができるアドバイスは非常に役に立ちます。私自身の研究が進むにつれて、投稿を更新します。
ありがとう、
マット。