Подтвердить что ты не робот

Запрос Mongo ISODate в Java

У меня есть запрос 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?

Спасибо!

4b9b3361

Ответ 1

Использовать регулярную дату Java - также я рекомендую QueryBuilder:

Date d = new Date(); // or make a date out of a string...
DBObject query = QueryBuilder.start().put("dateField").greaterThanEquals(d).get();

Ответ 2

У меня есть поисковая лодка и тратить больше часа на поиск того, как получить данные при наличии 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();
    }