Ответ 1
Использовать регулярную дату Java - также я рекомендую QueryBuilder:
Date d = new Date(); // or make a date out of a string...
DBObject query = QueryBuilder.start().put("dateField").greaterThanEquals(d).get();
У меня есть запрос mongo для выполнения:
query = { "dateField" : { "$gte" : ISODate('2011-11-10T07:45:32.962Z') } }
Когда я делаю db.Collection.find(query)
в оболочке mongo, я могу получить результаты.
Как я могу запросить это с помощью Java? Я попытался построить строку на основе параметра Date.
Но в процессе построения String он в конечном итоге передается как "ISODate('2011-11-10T07:45:32.962Z')"
вместо ISODate('2011-11-10T07:45:32.962Z')
(без окружающих цитат).
Каким будет лучший способ построить этот запрос с помощью Java API?
Спасибо!
Использовать регулярную дату Java - также я рекомендую QueryBuilder:
Date d = new Date(); // or make a date out of a string...
DBObject query = QueryBuilder.start().put("dateField").greaterThanEquals(d).get();
У меня есть поисковая лодка и тратить больше часа на поиск того, как получить данные при наличии ISODate
в модели монго.
Поскольку конструктор по умолчанию для даты устарел, поэтому он не работал в моем случае.
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();
}