2016-09-30 183 views
0

我在有日期的mongodb中有很多數據。通常這些日期在任何日期,但在10:00:00和22:00:00之間。MongoDB:按日期時間查詢部分日期時間

因爲我發現在超出上述範圍的時候會出現一些奇怪的行爲,所以我想要一個查詢返回每個不在10:00:00和22:00:00之間的文檔。有沒有辦法在MongoDB中做到這一點?

例如按時間部分查詢日期?

+0

提示:'$ project'您的文檔,並使用[日期操作符](https://docs.mongodb.com/v3.2/reference/operator/aggregation-date/)返回每個文檔的時間。從那裏,你可以在'$ match'階段過濾你的文檔。 – styvane

回答

1

查詢是上午12點29分以後有時間的文檔,我的解決辦法是:

(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