在两个日期之间查询MongoDB groovy

时间:2013-05-20 13:44:19

标签: mongodb date grails groovy

我正在尝试使用groovy获取两个日期之间的所有文档。我尝试了几种方法并没有成功。最近我尝试过这里列出的方法Java/MongoDB query by date

这是我的代码:

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有所不同,但是我不确定如何格式化请求。

1 个答案:

答案 0 :(得分:4)

您需要使用单引号

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

使用双引号,Groovy尝试将gte扩展为Groovy字符串,但正如它所说,您没有名为gte的变量

实际上,您应该能够将代码转换为更常规的代码:

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