Próbuję wysłać do mongodb zapytanie o dokumenty, w których "data" jest zgodna z dwiema datami. Dane Próbka jest:Zapytanie MongoDB według daty w języku Java
{
"_id" : ObjectId("4fad0af6709fbc1d481c3e05"),
"ID" : NumberLong("200930746205085696"),
"text" : "Forgot my charger...:(",
"date" : ISODate("2012-06-14T10:49:57Z"),
"sentiment" : "NEG"
}
mojego kodu Java jest:
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);
ale obiekt kursor nie ma wyników.
przedmiotem zapytania wygląda następująco:
{ "date" : { "$gt" : { "$date" : "2012-05-15T00:16:15.184Z"} , "$lte" : { "$date" : "2012-06-14T10:16:15.184Z"}}}
Podejrzewam, że problem jest reprezentacja data w DB. Wszelkie sugestie na ten temat?
To powinno zadziałało. Czy możesz dwukrotnie sprawdzić dane? – Thilo
Tak, masz rację, wydaje się działać! Problem polegał na tym, że podałem dane, ponieważ nie ma dokumentów do pobrania. Głupi ja! Dzięki za pomoc! – andjelko
Wystarczy spojrzeć na http://stackoverflow.com/questions/6840540/java-mongodb-query-by-date To już rozwiązany tam. – josete