Class: MongoDoc::Collection

Inherits:
Object show all
Defined in:
lib/mongodoc/collection.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Collection

Returns a new instance of Collection.



8
9
10
# File 'lib/mongodoc/collection.rb', line 8

def initialize(name)
  self._collection = self.class.mongo_collection(name)
end

Instance Attribute Details

#_collectionObject

Returns the value of attribute _collection.



5
6
7
# File 'lib/mongodoc/collection.rb', line 5

def _collection
  @_collection
end

Class Method Details

.mongo_collection(name) ⇒ Object



41
42
43
# File 'lib/mongodoc/collection.rb', line 41

def self.mongo_collection(name)
  MongoDoc.database.collection(name)
end

Instance Method Details

#find(query = {}, options = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/mongodoc/collection.rb', line 12

def find(query = {}, options = {})
  cursor = MongoDoc::Cursor.new(_collection.find(query, options))
  if block_given?
    yield cursor
    cursor.close
  else
    cursor
  end
end

#find_one(spec_or_object_id = nil, options = {}) ⇒ Object



22
23
24
# File 'lib/mongodoc/collection.rb', line 22

def find_one(spec_or_object_id = nil, options = {})
  MongoDoc::BSON.decode(_collection.find_one(spec_or_object_id, options))
end

#insert(doc_or_docs, options = {}) ⇒ Object Also known as: <<



26
27
28
# File 'lib/mongodoc/collection.rb', line 26

def insert(doc_or_docs, options = {})
  _collection.insert(doc_or_docs.to_bson, options)
end

#save(doc, options = {}) ⇒ Object



31
32
33
# File 'lib/mongodoc/collection.rb', line 31

def save(doc, options = {})
  _collection.save(doc.to_bson, options)
end

#update(spec, doc, options = {}) ⇒ Object



35
36
37
38
39
# File 'lib/mongodoc/collection.rb', line 35

def update(spec, doc, options = {})
  _collection.update(spec, doc.to_bson, options)
  result = MongoDoc.database.command({'getlasterror' => 1})
  (result and result.has_key?('updatedExisting')) ? result['updatedExisting'] : false
end