5

私はclojureが初めてです。

monger を介して mongodb に接続する際のイディオム/パターンはありますか?

を使用して接続および切断する必要がありますか

(monger.core/connect) & (monger.core/disconnect conn)

それぞれ。毎回 ?

接続プールから接続を再利用する方法はありますか?

4

2 に答える 2

7

monger は、接続プールを行う MongoClient を使用します。その後connect、完了するまでそのプールで作業を続けることができますdisconnectサポートされている接続オプションについては、 monger のドキュメントを参照してください(例: プール内の接続の最大数、デフォルトは 10)。

于 2014-05-30T01:35:41.527 に答える
2

サンプルコードが必要なだけですよね?ドキュメントでは、 を介したローカルにバインドされた接続の作成についてのみ説明されてletいるため、これで開始できます。

(ns pipegen.core
    (:require [monger.core :as mg]
              [monger.collection :as mc]))

(def conn (atom (mg/connect-via-uri mongo-uri)))
(mc/insert (:db @conn) "collectionname" {:name "methuzula" :age 123})

ドキュメントから、 の戻り値の型が明確ではなかったmg/connect-via-uriので、誰かに役立つ場合に備えて簡単に言及します。

{:conn #object[com.mongodb.MongoClient]
 :db   #object[com.mongodb.DB]}

それを に保存するとdef、必要に応じて再利用できます。


サイドノート、質問とはあまり関係ありませんが、おそらく役立つでしょう:

これは、データベースへの接続に最適な設計パターンではない可能性があります。以下は、私が楽しく読んだ依存性注入の設計パターンです。mongo 接続コンテキストを渡すためのより良いアイデアが得られます。Reader Monad は特にクールに思えます。自分で試してみる必要があります。http://software-ninja-ninja.blogspot.co.il/2014/04/5-faces-of-dependency-injection-in.html

また、clojuriansonslackは友好的なコミュニティであり、clojure で何度も頭痛の種になるまで知りませんでした。チェックしてみてください! https://clojurians.slack.com/

于 2016-02-27T17:05:02.467 に答える