【问题标题】:Query MongoDB between two dates groovy在两个日期之间查询 MongoDB groovy
【发布时间】:2013-05-20 13:44:18
【问题描述】:

我正在尝试使用 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 不同,这是有道理的,但我不确定应该如何格式化请求。

【问题讨论】:

    标签: mongodb date grails groovy


    【解决方案1】:

    你需要使用单引号

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

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

    确实,您应该能够将您的代码转换为更时髦的:

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

    【讨论】:

    • 谢谢你..不敢相信我错过了..日期必须是某种格式/类型吗?目前我正在使用纪元时间,但即使“开始”和“结束”之间有多个日期,也没有从数据库中得到任何东西?
    • 我认为它可以只是一个java.util.Date 对象
    猜你喜欢
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多