     if arguments.length < 3
       [value, fn, callback] = [null, value, fn]
     throw new Error("Callback required") unless callback instanceof Function
-    @_collection.each @_selector, @_options, (error, object)->
+    @collection.each @selector, @options, (error, object)->
       return callback error if error
       if object
         try

      [callback, options] = [options, null]
    if !callback && !options && selector instanceof Function
      [callback, selector] = [selector, null]
    if selector instanceof @_database.ObjectID || selector instanceof String
      if callback
        this.one selector, options, callback
      else
        return this.where(_id: selector).extend(options)
    else
      if callback
        this.all selector, options, callback
      else
        return this.where(selector).extend(options)

  # Passes matching object from this query to callback.
  #

  # Returns a scope with combined options.
  extend: (options)->
    combined = {}
    if @options
      combined[k] = v for k,v of @options
    if options
      combined[k] = v for k,v of options
    return new Scope(@collection, @selector, combined)

  # Changes sorting order.
  sort: (fields, dir)->
    throw "Direction must be 1 (asc) or -1 (desc)" unless dir == 1 || dir == -1
    sort = @options.sort || []
    for field in fields
      if Array.isArray(field)
        sort = sort.concat([f, dir] for f in field)
