我有一个字符串:
'"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评估。
那么可以在这做什么?
答案 0 :(得分:0)
你试过了吗?
db.collectionName.find( [ 'dateInfo.dates.startDate' : ['$gte' : new Date() ] ] )