Merge pull request #25 from ghoseb/master

Add support for connecting to Replica Sets.
This commit is contained in:
Michael Klishin 2012-05-14 23:08:10 -07:00
commit 7b9a4594d9

View file

@ -16,7 +16,7 @@
(:use [monger.conversion]) (:use [monger.conversion])
(:import [com.mongodb Mongo MongoURI DB WriteConcern DBObject DBCursor CommandResult Bytes MongoOptions ServerAddress MapReduceOutput] (:import [com.mongodb Mongo MongoURI DB WriteConcern DBObject DBCursor CommandResult Bytes MongoOptions ServerAddress MapReduceOutput]
[com.mongodb.gridfs GridFS] [com.mongodb.gridfs GridFS]
[java.util Map])) [java.util Map ArrayList]))
;; ;;
;; Defaults ;; Defaults
@ -47,11 +47,26 @@
(monger.core/connect) (monger.core/connect)
(monger.core/connect { :host \"db3.intranet.local\", :port 27787 }) (monger.core/connect { :host \"db3.intranet.local\", :port 27787 })
;; Connecting to a replica set with a couple of seeds
(let [^MongoOptions opts (mg/mongo-options :threads-allowed-to-block-for-connection-multiplier 300)
seeds [[\"192.168.1.1\" 27017] [\"192.168.1.2\" 27017] [\"192.168.1.1\" 27018]]
sas (map #(apply mg/server-address %) seeds)]
(mg/connect! sas opts))
" "
{:arglists '([]
[server-address options]
[[server-address & more] options]
[{ :keys [host port uri] :or { host *mongodb-host* port *mongodb-port* }}])}
([] ([]
(Mongo.)) (Mongo.))
([^ServerAddress server-address ^MongoOptions options] ([server-address ^MongoOptions options]
(Mongo. server-address options)) (if (coll? server-address)
;; connect to a replica set
(let [server-list ^ArrayList (ArrayList. ^java.util.Collection server-address)]
(Mongo. server-list options))
;; connect to a single instance
(Mongo. ^ServerAddress server-address options)))
([{ :keys [host port uri] :or { host *mongodb-host* port *mongodb-port* }}] ([{ :keys [host port uri] :or { host *mongodb-host* port *mongodb-port* }}]
(Mongo. ^String host ^Long port))) (Mongo. ^String host ^Long port)))