这是我在 mongodb 中的 eventSchedule 集合中的示例 JSON:
/* 0 */
{
"_id" : ObjectId("51cd841b8b757a8c4c3b0af9"),
"type" : "evo",
"eventInfo" : {
"title" : "My title",
"field1" : "MyField1",
"schedule" : {
"fromDate" : ISODate("2013-07-19T04:00:00Z"),
"toDate" : ISODate("2013-07-25T20:00:00Z")
}
},
"locationName" : "Loc1"
}
我想查询这个集合并在当前日期之后获取所有带有日程字段“fromDate”的 eventSchedules。
在 mongoVUE 中,以下查询有效:
db.eventSchedule.find({ "eventInfo.schedule.fromDate" : { "$gte" : ISODate("2012-04-29T00:00:00Z") } }).limit(50);
我正在尝试从我的一个 grails 控制器中执行此操作:
def curDate= new Date()
def sdf= new SimpleDateFormat("yyyy-mm-dd")
def curFormattedDate= sdf.format(curDate)
def queryVal= "{\$gte : ISODate(\""+curFormattedDate+"T00:00:00.000Z\")}"
query.put("eventInfo.schedule.fromDate:", queryVal.trim())
DBObject a = db.eventSchedule.findOne(query)
println a
上面的代码将 a 的值返回为空。请注意,如果我从中删除括号queryVal
,那么它也不起作用。所以任何人都可以帮助我在 groovy 中形成适当的查询吗?