Ich habe Probleme bei der Suche ISODate Feld in Mongodb mit Java. Ich möchte genau passendes Datum finden.MongoDB ISODate Feldsuche mit Java
Hier ist, wie ich erste Sammlung abfragen und ISODate Feld "Timestamp" erhalten. Sobald ich dieses Datum habe, möchte ich eine andere Sammlung mit dem gleichen "Timestamp" -Wert suchen.
FindIterable<Document> docList = thermalComfortCollection.find();
for(Document doc: docList) {
String ts = doc.get("Timestamp").toString();
System.out.println(ts);
...
Ich bin isodate Formatierung, da es mir Datum in einem anderen Format zurückgibt, die ich suchen möchten. Deshalb bin ich Umwandlung in dieses Muster „yyyy-MM-dd HH: mm: ss“
final DateTimeFormatter inputFormat =
DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy");
// The parsed date
final ZonedDateTime parsed = ZonedDateTime.parse(ts, inputFormat);
// The output format
final DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String date = outputFormat.format(parsed);
konnte ich nicht finden, wie für isodate Typ genaue Übereinstimmung Erklärung zu schreiben, so dass ich setzen beide gte und lte Bedingungen, um eine genaue Übereinstimmung zu erhalten ..!
BasicDBObject query = new BasicDBObject("Timestamp", //
new BasicDBObject("$gte", date).append("$lte", date));
System.out.println(query);
Und die Abfrage funktioniert nicht. Könnten Sie mir einen Kommentar geben, welcher Teil meines Codes falsch ist?
Thank you! Ich habe ein Problem in meinem Code gefunden, weil ich Filter mit Datum nicht richtig gesetzt habe. – ejshin1