Итак, у меня есть база данных сообщений, к которой я хочу получить доступ, но я также хочу кэшировать результаты запроса, чтобы я не делал дополнительных подключений к базе данных.База данных Monger, соединяющая и сохраняющая результаты
До сих пор у меня есть что-то вроде
;;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.
Как разработчик обычно обращается к этой ситуации?