def self.db(read_preference=:secondary, session_name='default')
config = Mongoid::Config.sessions[session_name]
hosts = config['hosts']
ssl = config['options']['ssl']
if hosts.length > 1
con = defined?(MongoReplicaSetClient) ? MongoReplicaSetClient.new(hosts, :read => read_preference, :ssl => ssl)
: Mongo::ReplSetConnection.new(hosts, :read => read_preference, :ssl => ssl)
else
host_port = hosts[0].split(':')
con = defined?(MongoClient) ? MongoClient.new(host_port[0], host_port[1].to_i, :ssl => ssl)
: Mongo::Connection.new(host_port[0], host_port[1].to_i, :ssl => ssl)
end
db = con.db(config['database'])
db.authenticate(config['username'], config['password'])
db
end