1

アクセスしたい投稿のデータベースがありますが、クエリの結果もキャッシュしたいので、データベースに余分な接続を作成しません。

これまでのところ、私は次のようなものを持っています

 ;;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 が設定されているかどうかを確認することだと思います。

開発者は通常、この状況にどのように対処しますか?

4

1 に答える 1

2

キャッシュ レイヤーを追加することが目的の場合は、ライブラリcore.memoizeを確認できます。

于 2015-02-22T18:28:24.183 に答える