Ich arbeite an Java und MongoDb 3.0 und mit einer Abfrage, die ich in Java-Code konvertieren möchte.Umwandlung von MongoDB3.0 Abfrage zu Java
Mongo DB-Abfrage ist wie folgt:
db.users.find({ $or: [ { updated_at:{ $gt:90, $lte:200}}, { updated_at:{ $gt:350, $lte:400}}, { updated_at:{ $gt:560, $lte:700}} ] })
Java-Abfrage für diese würde wie unten sein.
List<Document> orqueryList = new ArrayList<Document>();
List<String> list1 = new ArrayList<String>();
list1.add("90:200");
list1.add("350:400");
list1.add("560:700");
Document greaterQuery = new Document();
Document lessQuery = new Document();
Document lEQuery = new Document();
Document gEQuery = new Document();
for (String time : list1) {
String[] updatedAtt = tim.split(":");
gEQuery.put("$gte", Long.parseLong(updatedAtt[0]));
lEQuery.put("$lte", Long.parseLong(updatedAtt[1]));
greaterQuery.put("updated_at", gEQuery);
lessQuery.put("updated_at", lEQuery);
orqueryList.add(greaterQuery);
orqueryList.add(lessQuery);
}
query.put("$or", orqueryList);
Aber das funktioniert nicht wie meine orqueryList
Liste gibt mir Größe 3 mit letzten Werte wie unten
[Dokument {{received_at_server = Dokument {{$ gte = 560}}}}, Dokument {{received_at_server = Dokument {{$ lte = 700}}}}, Dokument {{received_at_server = Dokument {{$ gte = 560}}}}, Dokument {{received_at_server = Dokument {{$ lte = 700}} }}, Dokument {{received_at_server = Dokument {{$ gte = 560}}}}, Dokument {{received_at_server = Dokument {{$ lte = 700}}}}]
@Roshan Quadras Aber es gibt mir jetzt letzten Wert . Wie es den letzten Wert in das Dokument überschreibt. Dokument {{$ oder = Dokument {{$ und = [Dokument {{aktualisierter_at = Dokument {{$ gte = 560}}}}, Dokument {{updated_at = Dokument {{$ lte = 700}}}}}}}} } – Kamini
@Kamini Die andQuery-Referenz zeigte auf den letzten Wert, da wir das Listenobjekt innerhalb der for-Schleife neu erstellen. Ich habe das Abfrage-Snippet aktualisiert, das das erwartete Ergebnis ausgibt. –