         return callback(null, json_count)
 
       queue.defer (callback) =>
+        ins = {}
+        (delete find_query[key]; ins[key] = value.$in) for key, value of find_query when value?.$in
+        ins_size = _.size(ins)
 
         # use find
         if keys.length or ins_size

            callback()

    load_queue.await callback

            json = json.splice(0, Math.min(json.length, @_cursor.$limit))
          callback()

        queue.defer (callback) => @fetchIncludes(json, callback)

      queue.await =>
        return callback(null, (if _.isArray(json) then !!json.length else json)) if exists
        return callback(null, if json.length then json[0] else null) if @_cursor.$one

        json = @selectResults(json, callback)
        if @_cursor.$page or (@_cursor.$page is '')
          callback(null, {
            offset: @_cursor.$offset
            total_rows: @_count(find_query, keys)
            rows: json
          })
        else
          callback(null, json)

      return # terminating

  buildFindQuery: (callback) ->
    queue = new Queue()

    find_query = {}
