2017-09-26 10 views
0

MongoDBからデータを取得するためにRestHeartを設定しました。ほとんどのリクエストは正常に動作し、クライアントを使用してMongoDB(RoboMongo、MongoDB Compass ...)を照会する場合と同じ結果を返します。RestHeartでMongoDBを照会すると、MongoDBクライアントと異なる結果が返される

## Request 
https://IP/DB/Collection/?filter={'DATE_A':'2017-08-24'} 

## Query 
db.getCollection('collection').find({'DATE_A':'2017-08-24'}) 

(クライアントと同じクエリが0.163sかかります)文字列としての日付に関与フィルタはMongoDBのクライアントとのよりも時間がかかるとnginxのは、60年代の後に接続を閉じコレクションはのインデックスを持っていることを、次のようなしかし、いくつかの要求クエリーがクライアントで実行されるときに使用されるDATE_A属性。

RestHeartの設定は、MongoDBとの接続の違いによるドキュメントのデフォルト設定と同じです。この例では、3つのインスタンス(1つのマスターと2つのスレーブ)を持つクラスタを使用します。さらに、RestHeartのログファイルには、これらの要求を除いて実行されたすべての要求が表示されるので、その要求が何も起こっていないことがわかります。

このクエリで何が問題になっているのかを発見するためのアドバイスはありますか?前もって感謝します。

答えて

1

Restheartは、デフォルトで_id降順で結果をソートします。

を増やしてみてくださいソート= {「日付」: - 1}:「(ISODateまたは私は「DATE_A」取得のMongoDBクライアントで今日付型に「DATE_A」フィールドタイプを変更した

+0

複合インデックスを構築します2017-02-21T05:00:00.000Z ")。私はRestHeartを使って日付でフィルタリングする方法を今見つけようとします。ありがとう。 –

関連する問題