lib/ganymed/mongodb.rb in ganymed-0.1.2 vs lib/ganymed/mongodb.rb in ganymed-0.2.0
- old
+ new
@@ -5,10 +5,11 @@
class MongoDB
attr_reader :config
def initialize(config)
@config = config
+ @collections = {}
log.info("using MongoDB at #{config.host}:#{config.port}/#{config.database}")
end
def connection
@connection ||= ::Mongo::Connection.new(config.host,
@@ -20,10 +21,10 @@
def db
@db ||= connection.db(config.database)
end
def collection(ns)
- db[ns].tap do |col|
+ @collections[ns] ||= db[ns].tap do |col|
col.ensure_index([['c', ::Mongo::ASCENDING]])
col.ensure_index([['o', ::Mongo::ASCENDING]])
col.ensure_index([['t', ::Mongo::ASCENDING]])
col.ensure_index([['c', ::Mongo::ASCENDING], ['o', ::Mongo::ASCENDING]])
col.ensure_index([['o', ::Mongo::ASCENDING], ['t', ::Mongo::ASCENDING]])