2016-09-30 7 views
0

mongodbに日付が入ったデータがたくさんあります。通常、これらの日付は、10:00〜22:00の間の任意の日付です。MongoDB:日時の時刻別のクエリ

私は上記の範囲外の時間にいくつかの奇妙な動作を把握しているので、どの日付でも10:00:00と22:00:00の間にないすべてのドキュメントを返すクエリが必要です。 mongodbでこれを行う方法はありますか?

日付の時間部分によってクエリ? 12時29分午前までの時間を持っている文書の照会

+0

ヒント:あなたのドキュメントを '$ project'し、[date operators](https://docs.mongodb.com/v3.2/reference/operator/aggregation-date/)を使って各ドキュメントのTimeを返します。そこから '$ match'ステージで文書をフィルタリングすることができます。 – styvane

答えて

1

、私の解決策だった:

(event_startがあるisodatetime)

I)、プロジェクトの時間と分

{'$project': {'_id': 1, 
      'hour': {'$hour': '$event_start'}, 
      'minute': {'$minute': '$event_start'}}}, 

II)試合後その: `

{'$match': {'$or': [ 
        {'hour': {'$gt': 12}}, 
        {'$and': [{'hour': {'$eq': 12}}, 
           {'minute': {'$gte': 30}} 
           ]}]}} 

ソース - >Link