在Clojure,Noir和Monger都是新人,我只是面临一个小问题。作为Noir的标准配置,我将模型保存在src / app_name / model_name.clj
中我面临的问题是我需要在每个模型中与MongoDB建立相同的连接,因为我不知道如何正确地“共享”连接,如下所示:
(ns app.models.theme
(:require [monger.collection :as mc]
[monger.core :as mg]))
(mg/connect!)
(mg/set-db! (mg/get-db "app_development"))
; Do stuff
我如何通过整个应用程序共享此连接?谢谢。
答案 0 :(得分:2)
如果你总是连接到同一个服务器,那么只需在server.clj(src // server.clj)中添加它
(mg/connect!)
如果您只在该服务器中使用一个数据库,则只需添加:
(mg / set-db!(mg / get-db“dbname”))
到同一个文件
否则你可以在例如入口点或代码中的任何地方
(defpage "/dbname/tothis" {:keys [dbname]}
(mg/with-db (mg-get-db dbname))).....