class Rmodel::Mongo::Source
Public Class Methods
new(connection, collection)
click to toggle source
# File lib/rmodel/mongo/source.rb, line 6 def initialize(connection, collection) @connection = connection raise ArgumentError, 'Connection is not setup' unless @connection @collection = collection raise ArgumentError, 'Collection can not be guessed' unless @collection end
Public Instance Methods
build_query()
click to toggle source
# File lib/rmodel/mongo/source.rb, line 32 def build_query Query.new end
delete(id)
click to toggle source
# File lib/rmodel/mongo/source.rb, line 28 def delete(id) @connection[@collection].find(_id: id).delete_one end
delete_by_query(query)
click to toggle source
# File lib/rmodel/mongo/source.rb, line 40 def delete_by_query(query) exec_query(query).delete_many end
exec_query(query)
click to toggle source
# File lib/rmodel/mongo/source.rb, line 36 def exec_query(query) @connection[@collection].find(query.selector, query.options) end
find(id)
click to toggle source
# File lib/rmodel/mongo/source.rb, line 14 def find(id) @connection[@collection].find('_id' => id).first end
insert(doc)
click to toggle source
# File lib/rmodel/mongo/source.rb, line 18 def insert(doc) doc = doc.merge('_id' => BSON::ObjectId.new) if doc['_id'].nil? @connection[@collection].insert_one(doc) doc['_id'] end
update(id, doc)
click to toggle source
# File lib/rmodel/mongo/source.rb, line 24 def update(id, doc) @connection[@collection].find(_id: id).update_one(doc) end