2013-04-23 65 views
0

我有一個集合,是充滿了這樣的文件:MongoHQ REST API日期查詢

{ 
    _id: ObjectId("51715ade030112703e4c1fd3"), 
    gas_price: 78, 
    elec_usage: 110, 
    elec_price: 88, 
    gas_usage: 146, 
    user: "test_user", 
    timestamp: ISODate("2013-04-19T15:55:26.813Z") 
} 

我想查詢他們爲「時間戳是今天」。我查詢JSON看起來是這樣的:

{"timestamp" : { $gte : new Date('2013-4-23')}} 

如果我手動運行此查詢它的工作原理:

find({"timestamp" : { $gte : new Date('2013-4-23')}}).limit(100) 

[{ _id: ObjectId("51763f708b26fe92e77d7898"), gas_price: 98, elec_usage: 146, elec_price: 82, gas_usage: 120, user: "test_user", timestamp: ISODate("2013-04-23T08:59:44.587Z") } 
{ _id: ObjectId("517646798b26fe92e77d7899"), gas_price: 76, elec_usage: 84, elec_price: 91, gas_usage: 117, user: "test_user", timestamp: ISODate("2013-04-23T09:29:45.693Z") } 
{ _id: ObjectId("51764d858b26fe92e77d789a"), gas_price: 90, elec_usage: 69, elec_price: 87, gas_usage: 30, user: "test_user", timestamp: ISODate("2013-04-23T09:59:49.702Z") } 
{ _id: ObjectId("517663058b26fe9629162cfe"), gas_price: 100, elec_usage: 38, elec_price: 80, gas_usage: 68, user: "test_user", timestamp: ISODate("2013-04-23T11:31:33.800Z") } 
{ _id: ObjectId("517663868b26fe9637611ca4"), gas_price: 95, elec_usage: 147, elec_price: 93, gas_usage: 117, user: "test_user", timestamp: ISODate("2013-04-23T11:33:42.693Z") }] 

,但如果我在一個網址查詢:

https://api.mongohq.com/databases/vIHD_Development/collections/hourly_usage/documents?_apikey=xxxxxxxxxxxx&q=%7B%22timestamp%22%20:%20%7B%20$gte%20:%20new%20Date('2013-4-23')%7D%7D 

(其中未編碼是「https://api.mongohq.com/databases/vIHD_Development/collections/hourly_usage/documents?_apikey=xxxxxxxxxxxx&q={"reading_time" : { $gte : new Date('2013-4-23')}}」)

我得到一個空數組。我試過不同的編碼(這個URL包含一個%24的$)和不同的構造(ISODate而不是日期,不同的日期格式),但似乎沒有任何工作。如果我做一個簡單的查詢{「用戶」:「test_user」}我得到的文件後面例如: -

https://api.mongohq.com/databases/vIHD_Development/collections/hourly_usage/documents?_apikey=xxxxxxxxxxxx&q=%7Bgas_price:%20%7B%20$gte:%2070%7D%20%7D 

我最近沒有在檢索的任何效果更改時間戳字段名稱從潛在的衝突戳了。

回答

0

似乎MongoHQ在REST API中執行$ date的日期並未完成。

我解決這個問題的方法是將日期存儲爲自時代以來的秒數,並對此進行查詢。它不僅工作,而且代碼更簡單。