2012-12-08 53 views
2

我蒙戈文檔如下如何構建日期範圍查詢?

{{ 

"startTime" : "2012-12-06T18:30:00.000Z", 
"endTime" : "2012-12-07T18:30:00.000Z", 
"cost" : "40", 
"_id" : ObjectId("50c31b65d2dfa2271b000001") 
} 
{ 

"startTime" : "2012-12-07T18:30:00.000Z", 
"endTime" : "2012-12-08T18:30:00.000Z", 
"cost" : "40", 
"_id" : ObjectId("50c31b65d2dfa2271b000001") 
} 
{ 

"startTime" : "2012-12-05T18:30:00.000Z", 
"endTime" : "2012-12-07T18:30:00.000Z", 
"cost" : "40", 
"_id" : ObjectId("50c31b65d2dfa2271b000001") 
} 
} 

我試圖基於查詢的日期範圍蒙戈文件, 我的查詢如下:

db.collection.find({"startTime":{"$gte":"2012-12-05T18:30:00.000Z"},"endTime": {"$lt":"2012-12-12T18:30:00.000Z"}}); 

響應爲空...

+0

因爲你的例子中的三個文檔都有相同的_id, – JohnnyHK

+0

我試着用你的第一個文檔收集這個確切的查詢,然後我找回了這個文檔。你確定這些是你的確切文件和確切的查詢嗎? –

回答

1

按如下方式更改您的查詢,並按預期方式返回結果。

db.collection.find({"startTime":{"$gte":ISODate("2012-12-05T18:30:00.000Z")},"endTime": {"$lt":ISODate("2012-12-12T18:30:00.000Z")}}); 
+0

我在javascript中創建查詢ISODate沒有定義,是否我想添加任何庫? – user2587222

+0

如果您只是將日期存儲爲字符串,那麼您的查詢應該可以正常工作,或者如果您將其存儲爲ISODate,那麼我寫的查詢可能會有所幫助。您不需要爲ISODate添加任何庫。 –