我有一个副本集,我想建立到从属实例的独立只读连接。
正常情况下,我做这件事不会有问题。我唯一应该做的是设置slaveOk=true以便能够用读操作查询它。当我使用nodejs或mongo控制台时,它工作得很好,但我找不到使用monger的方法。
最奇怪的是,当我调用set-db!函数时出现异常:
MongoException未与主机对话,重试次数已用完
COM.MangoDb.dtcpCelpTrac.InEnLead(DTCP连接器.java:314)
建立replica-set connection不是我的选择。
目前我正在使用[com.novemberain/monger "1.4.0"]
谢谢!
更新:我查看了Java MongoDB Driver API Documentation并找到了slaveOk方法。我写了下面的代码,希望它能起作用:

(defn slave-connect!
  [& args]
  (mg/set-connection!
    (doto (apply mg/connect args)
          (.slaveOk))))

但我只有一个新的例外:
MongoException不是master com.mongodb.commandResult.getException
(命令结果:Java:100)

最佳答案

我在Monger 2.0.0下也找到了以下工作:

(connect-via-uri "mongodb://host/db?readOnly=true&readPreference=secondary")

10-04 10:29