class Mongomatic::Cursor

Wraps a Mongo::Cursor for managing result sets from MongoDB:

cursor = User.find({"zip" => 94107})
user1 = cursor.next

User.find({"zip" => 94107}).each { |u| puts u["name"] }

User.find({"zip" => 94107}).count

Attributes

mongo_cursor[RW]

Public Class Methods

new(obj_class, mongo_cursor) click to toggle source
# File lib/mongomatic/cursor.rb, line 14
def initialize(obj_class, mongo_cursor)
  @obj_class    = obj_class
  @mongo_cursor = mongo_cursor
end

Public Instance Methods

current_limit() click to toggle source
# File lib/mongomatic/cursor.rb, line 42
def current_limit
  @mongo_cursor.limit
end
current_skip() click to toggle source
# File lib/mongomatic/cursor.rb, line 50
def current_skip
  @mongo_cursor.skip
end
each() { |obj_class| ... } click to toggle source
# File lib/mongomatic/cursor.rb, line 36
def each
  @mongo_cursor.each do |doc|
    yield(@obj_class.new(doc, false))
  end
end
empty?() click to toggle source

Is the cursor empty? This method is much more efficient than doing cursor.count == 0

# File lib/mongomatic/cursor.rb, line 24
def empty?
  @mongo_cursor.has_next? == false
end
limit(number_to_return) click to toggle source
# File lib/mongomatic/cursor.rb, line 46
def limit(number_to_return)
  @mongo_cursor.limit(number_to_return); self
end
method_missing(name, *args) click to toggle source
# File lib/mongomatic/cursor.rb, line 19
def method_missing(name, *args)
  @mongo_cursor.send name, *args
end
next()
Alias for: next_document
next_document() click to toggle source
# File lib/mongomatic/cursor.rb, line 28
def next_document
  if doc = @mongo_cursor.next_document
    @obj_class.new(doc, false)
  end
end
Also aliased as: next
skip(number_to_skip) click to toggle source
# File lib/mongomatic/cursor.rb, line 54
def skip(number_to_skip)
  @mongo_cursor.skip(number_to_skip); self
end
sort(key_or_list, direction = nil) click to toggle source
# File lib/mongomatic/cursor.rb, line 58
def sort(key_or_list, direction = nil)
  @mongo_cursor.sort(key_or_list, direction); self
end