2013-05-20 37 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'对象 –

相关问题