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]}

如果将其保存到 adef中,则可以根据需要重复使用它。


旁注,与您的问题不太相关,但可能会帮助您:

这可能不是连接到 dbs 的最佳设计模式。下面是一些我喜欢阅读的依赖注入的设计模式,它提供了一些更好的关于传递 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 回答