我有一个字符串:
'"startDate" : {"\\$gte" : new Date() }'
我实际上想在我的 mongodb 数据库集合中查询所有日期在当前日期之后的集合。这是一个示例文档:
{
"_id" : ObjectId("51e2a857adc0c2fb535f6904"),
"dateInfo" : {
"dates" : {
"startDate" : ISODate("2013-07-13T04:00:00Z"),
"endDate" : ISODate("2013-07-19T20:00:00Z")
},
"named" : "name1",
"fieldX" : "field1",
"contact" : {
"numbs" : ["+44 121 127 127", "+44 568 789 256", "+44 687 5788 9875"]
}
},
"Locality" : "locality1",
"type" : "ewhet"
}
从 mongo shell,我可以按如下方式查询它:
db.collectionName.find({"dateInfo.dates.startDate" : {"$gte" : new Date()}})
现在我想从 groovy 中做到这一点。我正在尝试这样做(使用mongoDB java api):
DBCursor cursor = db.collectionName.find(new JsonSlurper().parseText('{"startDate" : {"\$gte" : new Date() }}'))
上面的代码给出的错误如下:
Lexing failed on line: 1, column: 48, while reading 'new ', was trying to match the constant 'null'
现在 JsonSlurper 的问题是它在键名和值名中都需要双引号。但是如果我在 中放双引号new Date()
,mongodb 不会对其进行评估。
那么这里可以做什么呢?