所以我有一个我想要访问的帖子的数据库,但我也想缓存查询的结果,所以我没有与数据库建立额外的连接。
到目前为止,我有类似
的内容 ;;talk with the database and get posts by their [count]
(defn posts-from-db []
(let [conn (mg/connect {:host "127.0.0.1" :port 27272})
db (mg/get-db conn "submitted-content")
coll "posts"]
(with-collection db coll
(find {})
(fields [:post_content :id])
;; it is VERY IMPORTANT to use array maps with sort
(sort (array-map :tags -1 :post_content 1))
(limit numberOfPosts))))
这将返回一组看起来像
的结果({:_id #<ObjectId 54d927ce9c521eb276553f11>, :post_content "Mermaids and dakinis "},
{ .... },
{ .... },
{ .... })
我认为一个好方法是将结果存储在符号中(var?key?..不确定Clojure的适当措辞是什么),然后检查是否设置了var。
开发人员通常如何解决这种情况?