2016-06-05 10 views
0

Haftungsausschluss: Clojure noob.Abfrage durch MongoDB ISODate in Clojure (Monger/clj-Zeit)

Ich versuche, eine einfache get-shows Funktion zu implementieren, um bevorstehende Shows von einer MongoDB-Instanz zurückzugeben. Dies gibt eine LazySeq der Länge 3, das ist, was ich erwarten würde:

(defn get-shows [] 
    (let [date-str (f/unparse (f/formatters :basic-date-time) (t/now))] 
    (mc/find-maps db "shows"))) 

Aber wenn ich einen Filter Argument der Abfrage hinzufügen, es gibt eine leere LazySeq:

(defn get-shows [] 
    (let [date-str (f/unparse (f/formatters :basic-date-time) (t/now))] 
    (mc/find-maps db "shows" {:date-time { $gte {$isoDate date-str} } }))) 

Bin ich mit das falsche Datumsformat? Muss ich date-str als ISODate in einer anderen Weise werfen?

Ich bin völlig in Ordnung mit dem Speichern/raw Zeitstempel statt abfragt, vor allem, wenn das die Abfrage vereinfacht, aber ich bin nicht sicher, wie das in clj-time zu tun ...

Antwort

0

Sie haben es wahrscheinlich schon gelöst, aber hast du so etwas versucht:

(defn get-shows [] 
    (let [date (java.util.Date.)] 
    (mc/find-maps db "shows" {:date-time {"$gte" date}})))