5

ASP.Net Web アプリケーションを構築しており、MongoDB (リモートでホストされている) からデータにアクセスしたいと考えています。私のドキュメントはすべて次のようになります (Utc フィールドのインデックスが確保されています)。

{ 
   "_id" : { "$oid" : "509501393e8785025c10bc21" }, 
   "Index" : 1,
   "Url" : "http:...", 
   "CameraId" : 123,  
   "Utc" : { "$date" : 1351955858006 } 
}

ユーザー側のパフォーマンスを考慮して、このデータを最大速度で取得したいと考えています。私が試したオプションの 1 つは、MongoDB C# ドライバーを使用して 2 つの日付 (Utc) の間のドキュメントをクエリする Page.aspx で JSON を介してローカル Web サービスを呼び出すことです。それは機能しますが、Web サービスを使用すると、要求/応答サイクルに余分なミリ秒が追加されるようです (db.foo.findOne() を使用した単一ドキュメントの要求は、平均で 1.3 秒で処理されます)。そのコレクション内のドキュメントの平均数は 50,000 で、最大 30,00,000 まで増加します。

私の質問は次のとおりです。

  1. Web サービスを使用すると、要求/応答サイクルに遅延 (ミリ秒) が追加されると言うのは正しいですか? (MongoDB が実際にクエリを完了するのに数ミリ秒かかるため)
  2. 2 番目のオプションは、MongoDB のHTTP / REST インターフェイスを使用することです。そうすれば、Web サービスを回避し、MongoDB に直接クエリを実行できます。ここで、あなたの意見が必要です。
    • HTTP/REST を使用して 2 つの日付間で MongoDB をクエリする方法はありますか?
    • HTTP/REST を使用して '>' および '<' 条件で MongoDB をクエリする方法はありますか?,
    • セキュリティの観点から Page.aspx で DB に直接アクセスするとどうなりますか?
  3. 上記のスキーマに対する他のクエリ代替 OR 最適化はありますか?

私の関連する質問はこちらです。

よろしく。

4

1 に答える 1

5

MongoDB のネイティブ HTTP インターフェイスは、クエリ用に構築されていません。あなたは今していることを続けるべきです。さらに、セキュリティ上の理由から MongoDB サーバーを公開してはならず、現在行っているように常に中間層を経由する必要があります。

于 2012-11-08T20:19:52.177 に答える