2017-10-25 26 views
0

MongoDBにはすべて "date"フィールドがあります。これはISO8601フォーマットの日付文字列です(つまり、moment.js形式()で作成されます)方法)。ISO8601 MongoDBの日付文字列(インデックス作成とクエリ)

"Aより前でBより前の日付のあるドキュメント"(つまり、日付の範囲内のドキュメント)を表すこのコレクションに対してクエリを効率的に実行したいと考えています。

私の日付をISO-8601文字列以外のものとして保存する必要がありますか?その答えに応じて、前述の要件のMongoDBクエリ操作はどのように見えますか?

{$and: [ 
    {date: {$gt: "2017-05-02T03:15:22-04:00"}}, 
    {date: {$lt: "2017-06-02T03:15:22-04:00"}}, 
]} 

"うまくいく"とはどういう意味ですか?私はいくつか説得力が必要です。

答えて

1

dateフィールドにはインデックス付きのdateデータ型を使用し、ではなくという文字列を使用してください。文字列の比較は、ちょうど64ビットの整数である日付を比較するのと比較して遅いです。

限り照会に関しては、ここで答えをチェックアウト:

return query based on date

関連する問題