我想使用Jongo进行日期查询。用户应该能够在查询中输入字符串,所以我希望对字符串使用find方法。我使用的是groovy。
我的代码:
jongo.getCollection("mycollection").find("{birthday: {\$lt : ISODate(\"2012-11-23T00:13:00.000Z\")}}")我得到了这个例外:
java.lang.IllegalArgumentException: Cannot parse query: {birthday: {$lt : ISODate("2012-11-23T00:13:00.000Z")}}
Error |
at org.jongo.query.BsonQueryFactory.createQuery(BsonQueryFactory.java:162)
Error |
at org.jongo.Find.<init>(Find.java:47)
Error |
at org.jongo.MongoCollection.find(MongoCollection.java:84)
Error |
at org.jongo.MongoCollection.find(MongoCollection.java:80)我做错了什么?
发布于 2017-06-23 16:51:09
是的找到了the relevant line in the source code to confirm
"ISODate“与此无关,它是mongo shell中的JavaScript函数名。
Jongo正在使用MongoDB Extended JSON标准进行解析。所以你会这么做
`{ \$date: \"2012-11-23T00:13:00.000Z\" }`而不是。
真的,用另一种方式引用它,让它更清晰:
.find("{ 'birthday': { '$lt': { '$date': '2012-11-23T00:13:00.000Z' } } }")https://stackoverflow.com/questions/44716902
复制相似问题