免责声明: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
中执行此操作...
答案 0 :(得分:0)
你可能已经解决了这个问题,但是你尝试过这样的事情:
(defn get-shows []
(let [date (java.util.Date.)]
(mc/find-maps db "shows" {:date-time {"$gte" date}})))