Запросы 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}})))
Другие вопросы по тегам