2016-04-13 50 views
1

使用以下過濾器可以獲取基於當前分鐘的當前信息。更改MongoDB中日期過濾器的靈敏度

time: {$gte: new Date()} 

我怎麼能改變這個過濾器只對當前敏感?因此,即使某些信息的時間字段是幾個小時的時間,但仍然在當天,它會返回。下面是示例文檔:

{ 
    "_id" : ObjectId("570e6b2a5bc3c5211a5ad80a"), 
    "reason" : "past document", 
    "time" : ISODate("2016-04-13T13:46:50Z"), 
}  
{ 
    "_id" : ObjectId("570e6b485bc3c5211a5ad80b"), 
    "reason" : "future document (today)", 
    "time" : ISODate("2016-04-13T18:52:13Z"), 
} 
{ 
    "_id" : ObjectId("570bcb094fb2e11410e6f74c"), 
    "reason" : "fresh appointment", 
    "time" : ISODate("2016-04-21T17:04:08Z"), 
} 

然後,預期回報將返回所有三個文檔,因爲它們都具有今天和更大的時間字段。目前,我的過濾器僅返回底部的兩個文檔,因爲過濾器會查看日期,小時和分鐘。理想情況下,它只會看到一天。

+0

請出示樣品與預期輸出文檔。 – styvane

+0

@ user3100115很棒的建議。那些被添加。 – KyleRiggen

+0

'{time:{「$ gte」:new Date(2016,04,13)}}'? – styvane

回答

2

創建於00:00:00.000(毫秒精度)保持當前日期時間小時約會對象實例和使用,在您的查詢:

var start = new Date(); 
start.setHours(0,0,0,0); 

db.collection.find({ "time": { "$gte": start } }); 
+1

工作得很好。謝謝。 – KyleRiggen