Wann immer ich Abfrage basierend auf dem Datumsfeld Ich bekomme alle Attribute korrekt, aber Datum Feld ist immer aktuelles Datum. Warum ist das so? Ich benutze Java 8 Spring mit MongoRepository Implementierung. In der Sammlung ist es Datumsfeld und in Java-Objekt ist es auch Datum.MongoDB Abfrage nach Datum gibt das aktuelle Datum immer
Ich habe es in LocalDateTime geändert, aber gibt immer noch das aktuelle Datum. Das Ändern in "ZonedDateTime" funktioniert nicht, da Java das DB-Datumsobjekt nicht automatisch in "ZonedDateTime" konvertiert.
Wie kann ich MongoDB mit Datum abfragen, die mir den tatsächlichen Datumswert in der Datenbank und nicht aktuelles Datum zurückgibt.
Java DB Objekt:
@Document(collection = "XXX")
public class XXX{
@Field(value= "ts")
private Date timestamp;
MongoDB Dokument:
{
"_id" : ObjectId("--------"),
"ts" : ISODate("2016-11-29T21:22:00.000+0000")
}
Repository:
@Query(value = "{'regId': ?0, 'ts': {'$lte': ?1}}")
Page<T> findAllByRegId(ObjectId regId, Date timeStamp, Pageable pageable);
Ergebnis erhalte ich:
id= same Id as above
ts = 2016-11-29T16:22:00.000Z
ts wird immer im aktuellen Zeitstempel zurückgegeben, aber in DB hat es den Wert 2016-11-29T21: 22.
Können Sie ein Beispiel hinzufügen pls? Einfacher zu folgen – Veeram
Können Sie ein Beispiel für Ihre Abfrage posten? MongoDB speichert Daten im ISODate-Format. – dyouberg
Ich speichere die Daten nicht, ich versuche die Daten zu holen, daher denke ich, dass sie mir das gleiche Datum geben sollten wie in DB, unabhängig von der Zeitzone. – user3334226