在Clojure中查询MongoDB ISODate(monger / clj-time)

时间:2016-06-05 17:25:53

标签: mongodb clojure monger

免责声明:Clojure noob。

我正在尝试实现一个简单的get-shows函数来从MongoDB实例返回即将到来的节目。这将返回长度为3的LazySeq,这是我所期望的:

(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 个答案:

答案 0 :(得分:0)

你可能已经解决了这个问题,但是你尝试过这样的事情:

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