Я пытаюсь запросить mongodb для документов, где «дата» - две даты. Образец данных:MongoDB Query by Date в Java
{
"_id" : ObjectId("4fad0af6709fbc1d481c3e05"),
"ID" : NumberLong("200930746205085696"),
"text" : "Forgot my charger...:(",
"date" : ISODate("2012-06-14T10:49:57Z"),
"sentiment" : "NEG"
}
Мой Java-код:
DBCursor cursor = null;
DB db = connect();
Date startDate = new Date(System.currentTimeMillis() - (long)(numOfTimePeriods+1)*time);
Date endDate = new Date(System.currentTimeMillis() - (long)numOfTimePeriods*time);
DBObject query = new BasicDBObject();
query.put("date", new BasicDBObject("$gt", startDate).append("$lte", endDate));
cursor = db.getCollection("status").find(query);
но объект курсора не имеет никаких результатов.
объект запроса выглядит следующим образом:
{ "date" : { "$gt" : { "$date" : "2012-05-15T00:16:15.184Z"} , "$lte" : { "$date" : "2012-06-14T10:16:15.184Z"}}}
Я подозреваю, что проблема является дата представления в БД. Любые предложения по этому поводу?
Это должно было сработать. Можете ли вы дважды проверить данные? – Thilo
Да, вы правы, это работает! Проблема была в данных, я запросил период, поскольку нет документов для извлечения. Дурак я! Спасибо за помощь! – andjelko
Просто взгляните на http://stackoverflow.com/questions/6840540/java-mongodb-query-by-date Это уже решено там. – josete