Запросы ISODate MongoDB в Clojure (monger/clj-time)
Отказ от ответственности: Clojure Noob.
Я пытаюсь реализовать простой get-shows
функция для возврата предстоящих шоу из экземпляра MongoDB. Это возвращает LazySeq
длины 3, что я и ожидал:
(defn get-shows []
(let [date-str (f/unparse (f/formatters :basic-date-time) (t/now))]
(mc/find-maps db "shows")))
Но когда я добавляю аргумент фильтра к запросу, он возвращает пустой 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} } })))
Я использую неправильный формат даты? Нужно ли бросать date-str
как ISODate
каким-то другим способом?
Я полностью согласен с хранением / запросом сырых временных меток вместо этого, особенно если это упрощает запрос, но я не уверен, как это сделать в clj-time
...
1 ответ
Вы, наверное, уже решили это, но вы пробовали что-то вроде этого:
(defn get-shows []
(let [date (java.util.Date.)]
(mc/find-maps db "shows" {:date-time {"$gte" date}})))