require 'mongo' module MongoClient class << self # @return Client to work with MongoDb attr_accessor :client def insert(model, data, id) collection = MongoClient.client[model] collection.insert_one({ id: id, data: data}) end def find(model, id) collection = MongoClient.client[model] collection.find( { id: id } ).first end def get_all(model) collection = MongoClient.client[model] collection.find.collect { |match| match } end def find_all(model, query) collection = MongoClient.client[model] collection.find( query ).collect { |match| match } end def update(model, id, data) collection = MongoClient.client[model] collection.update_one({ id: id }, { '$set' => data }) end def delete(model, id) collection = MongoClient.client[model] collection.delete_one({ id: id }) end end end MongoClient.client = Mongo::Client.new( [ "#{ENV['mongodb']}:27017" ], :database => 'api')