MongoDB-Abfrage nach Datum in Java
Ich versuche, die Abfrage mongodb für Dokumente, wo "Datum" wird zwischen zwei Datumsangaben.
Beispiel-Daten:
{
"_id" : ObjectId("4fad0af6709fbc1d481c3e05"),
"ID" : NumberLong("200930746205085696"),
"text" : "Forgot my charger...:(",
"date" : ISODate("2012-06-14T10:49:57Z"),
"sentiment" : "NEG"
}
Mein Java code ist:
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);
aber der cursor-Objekt hat keine Ergebnisse.
Query-Objekt sieht wie folgt aus:
{ "date" : { "$gt" : { "$date" : "2012-05-15T00:16:15.184Z"} , "$lte" : { "$date" : "2012-06-14T10:16:15.184Z"}}}
Ich vermute das problem ist der Zeitpunkt-Darstellung in DB.
Irgendwelche Vorschläge?
Das sollte geklappt haben. Können Sie überprüfen die Daten?
Ja, du hast Recht, es scheint zu funktionieren! Das problem war die Daten, die ich abgefragt die Frist für die gibt es keine Dokumente zu Holen. Wie naiv von mir! Vielen Dank für Ihre Hilfe!
Werfen Sie einen Blick auf stackoverflow.com/questions/6840540/java-mongodb-query-by-date Es ist bereits gelöst es.
Mögliche Duplikate von Java/MongoDB-query nach Datum
Möglich, Duplikat der Datum Abfrage mit Isodatum in mongodb scheint nicht zu funktionieren
Ja, du hast Recht, es scheint zu funktionieren! Das problem war die Daten, die ich abgefragt die Frist für die gibt es keine Dokumente zu Holen. Wie naiv von mir! Vielen Dank für Ihre Hilfe!
Werfen Sie einen Blick auf stackoverflow.com/questions/6840540/java-mongodb-query-by-date Es ist bereits gelöst es.
Mögliche Duplikate von Java/MongoDB-query nach Datum
Möglich, Duplikat der Datum Abfrage mit Isodatum in mongodb scheint nicht zu funktionieren
InformationsquelleAutor andjelko | 2012-06-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
$Datum Darstellung ist nur die toString-Repräsentation in der Java-Treiber, der ein Datum. Es verwendet die strikte JSON/BSON-Repräsentation, sondern die erweiterte 10gen BSON, in denen Werte können als Objekte dargestellt werden, wie Sie in der shell. Sie sollten nicht versuchen, die Abfrage in der shell mit Hilfe der toString-Ausgabe so, weil es nicht für die Arbeit eine Menge von Fällen.
InformationsquelleAutor JXue
Nicht Sie sollen die und Betreiber in deiner Abfrage ?
$und ist implcit auf eine Eigenschaft, wenn Sie zum Anhängen von Werten ?
mongodb.org/display/DOCS/... "Sie können auch kombinieren diese Operatoren angeben reicht sich" Nicht sicher, ob dies funktioniert im Allgemeinen Fall (mit anderen Betreibern). Wenn Sie Zeit haben, können Sie versuchen, Sie zu kombinieren, $gt $nin, oder was?
Nein, ich habe versucht $und Betreiber, versucht von cmd, aber ohne Erfolg.
Code scheint zu funktionieren, ich habe einen Fehler im Datum-Bereich, die ich abgefragt. Ich werde bestätigen, es funktioniert, wenn die app beendet die Verarbeitung und die Frage zu beantworten. Danke für die Hilfe!
InformationsquelleAutor jocelyn