class EM::Mongo::Collection

def find(selector={}, opts={})

def find(selector={}, opts={})
  f = Fiber.current
  cb = proc { |res| f.resume(res) }
  skip  = opts.delete(:skip) || 0
  limit = opts.delete(:limit) || 0
  @connection.find(@name, skip, limit, selector, nil, &cb)
  Fiber.yield
end

def first(selector={}, opts={})

def first(selector={}, opts={})
  opts[:limit] = 1
  find(selector, opts).first
end