2013-05-20 33 views
0

我想使用groovy在兩個日期之間獲取所有文檔。我嘗試了幾種方法,但都沒有成功。大多數最近我已經試過這裏列出的方法Java/MongoDB query by date查詢兩個日期之間的MongoDB groovy

這裏是我的代碼:

BasicDBObject query = new BasicDBObject("lastDate", // 
    new BasicDBObject("$gte",start).append("$lt", end)); 
    def temp= getDB().sysLog.find(query) 

但是我得到的錯誤:

 No such property: gte for class: dev.ReportController Possible solutions: DB 

我想不通,爲什麼這種做法會不行。它看起來好像groovy處理「$ gte」不同,然後Java是有道理的,但我不知道如何格式化請求。

回答

3

你需要使用單引號

new BasicDBObject('$gte', start).append('$lt', end)) 

使用雙引號,Groovy中嘗試將gte擴展成Groovy的字符串,但它說,你有沒有變量稱爲gte

事實上,您應該能夠將您的代碼轉換爲更常見:

def temp = getDB().sysLog.find([ lastDate:[ '$gte': start, '$lt': end ] ] as BasicDBObject) 
+0

謝謝..不能相信我錯過了..DOes日期必須是某種格式/ typ è?目前我正在使用紀元時間,但是即使「開始」和「結束」之間有多個日期,我們也沒有得到任何回覆freom的數據庫? – Travis

+0

明白了..有一個錯字..感謝很多! – Travis

+0

我認爲它可以只是一個'java.util.Date'對象 –

相關問題