我正在尝试使用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有所不同,这很有意义,但我不确定如何格式化请求。
最佳答案
您需要使用单引号
new BasicDBObject( '$gte', start ).append( '$lt', end ) )
使用双引号,Groovy尝试将
gte
扩展为Groovy字符串,但是正如上面所说,您没有名为gte
的变量确实,您应该能够将代码转换为更普通的代码:
def temp = getDB().sysLog.find( [ lastDate:[ '$gte': start, '$lt': end ] ] as BasicDBObject )