function precompileQuery(operator, value) {
      // for regex ops, precompile
      if (operator === '$regex') {
        if (Array.isArray(value)) {
          value = new RegExp(value[0], value[1]);
        } else if (!(value instanceof RegExp)) {
          value = new RegExp(value);
        }
      }
      else if (typeof value === 'object') {
        for (var key in value) {
          if (key === '$regex' || typeof value[key] === 'object') {
            value[key] = precompileQuery(key, value[key]);
          }
        }
      }

      return value;
    }
findOr() - oversee the operation of OR'ed query expressions.
   OR'ed expression evaluation runs each expression individually against the full collection,
   and finally does a set OR on each expression's results.
   Each evaluation can utilize a binary index to prevent multiple linear array scans.

@param {array} expressionArray - array of expressions
@returns {Resultset} this resultset for further chain ops.