次のような文字列があります。
'"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 シェルから、次のようにクエリを実行できます。
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()
です。
では、ここで何ができるでしょうか?