I have a mongo query to be executed :
query = { "dateField" : { "$gte" : ISODate('2011-11-10T07:45:32.962Z') } }
When I do a db.Collection.find(query)
on the mongo shell, I am able to retrieve the results.
How could I query this using Java ? I tried constructing a String based on the Date parameter.
But in the process of building the String, it eventually gets passed as "ISODate('2011-11-10T07:45:32.962Z')"
instead of ISODate('2011-11-10T07:45:32.962Z')
(without the surrounding quotes).
What would be the best way to construct this query using the Java API ?
Thanks !
I have search lot and spend more than hour in finding how to get data when having ISODate
in mongo model.
As the default constructor for date is deprecated so it was not working in my case.
BasicDBObject searchQuery = new BasicDBObject("_id" , 1);
try {
searchQuery.append("timestamp",BasicDBObjectBuilder.start( "$gte",new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS\'Z\'").parse("2015-12-07T10:38:17.498Z")).get());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Use a regular Java Date--also I recommend the QueryBuilder:
Date d = new Date(); // or make a date out of a string...
DBObject query = QueryBuilder.start().put("dateField").greaterThanEquals(d).get();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With