我是clojure的新手。
通过 monger 连接到 mongodb 是否有任何成语/模式?
我是否必须使用连接和断开连接
(monger.core/connect) & (monger.core/disconnect conn)
分别。每一次 ?
有没有办法可以重用连接池中的连接?
monger 使用 MongoClient,它执行连接池。之后connect
,您可以继续使用该池,直到完成,然后disconnect
。有关支持的连接选项,请参阅monger 文档(例如,池中的最大连接数,默认为 10)。
我们只需要示例代码,对吧?该文档仅讨论通过创建本地绑定连接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
此外,clojurians
onslack
是一个友好的社区,我在对 clojure 感到头疼之后才发现,请检查一下!https://clojurians.slack.com/