2017-01-19 14 views
0

mongodbがリモートマシンにインストールされています。インデックスが有効です。 コレクション文書の総数は約です。 私のローカルマシンでは、検索用にmongoose find()を使用し、最後にの結果を返します。 しかし、find()は約70秒となります。だから私は痩せ()を使用して、時間コストは約40秒、少し良いが、まだ長いです。mongooseが非常に遅いがrobomongoが非常に高速であることを確認します。

はまだ私のローカルマシン上で、私は同じ検索を行うには、このリモートのMongoDBに接続するためにクライアントrobomongo使用し、唯一の28ms

var UserSchema = new Schema({ 
 
    monitorName : {type: String}, 
 
    value : {type: Number}, 
 
    updateDate : {type: String} 
 
});

マイ検索条件がようですこれは:

Model.find().where('updateDate').gt('1/18/2017, 11:37:25 PM').lt('1/19/2017, 11:37:25 PM').lean().exec(function(err, docs){ ......

+1

ようこそスタックオーバーフロー、私はあなたの質問は何か分かりません? [Stack Overflowツアー](http://stackoverflow.com/tour)に従ってください。[よく質問するにはどうすればいいですか?](http://stackoverflow.com/help/how-あなたがあなたの質問に書いた関連コードを提供してください(また、[最小限で完全で検証可能な例の作成方法](http://stackoverflow.com/help/mcve)を参照してください) –

+0

updateDateのインデックスを作成しましたか? –

+0

はい、作成されました。私はrobomongoクライアントが各ページ50の結果しか表示していないと思います。それは自動的にページングを使用できますか? – user7440192

答えて

0

私はRobomongoはデフォルトで.limit(<n>) & .skip(<n>) (50件のレコード) を使用していますかなり確信しています。

したがって、通常の.find()操作の場合と同じくらい多くのコレクションを取得しません。

ユーザーが誤ってUIをブロックする膨大なクエリを実行してウィンドウが応答しなくなることを避けるのがおそらくです。

+0

もしそうなら、ネットワークから文書を転送するのにほとんどの時間コストが使われますか? – user7440192

+0

はい、UIをブロックする膨大なクエリをユーザーが誤って実行しないようにすることで、UIエクスペリエンスを柔らかくするGUIアプリケーションであるため、デフォルトでページングを使用します。 –

関連する問題