docs: function (obj, invert) {
              var pairs = [];
              for (var i in obj) {
                  var v = obj[i];
                  if (Array.isArray(v) && v.length) {
                      var ident = this.stringToIdentifier(i);
                      pairs.push(new BooleanExpression("AND", new BooleanExpression("gte", ident, v[0]), new BooleanExpression("lte", ident, v[1])));
                  } else {
                      throw new QueryError("Between requires an array for the value");
                  }
              }
              var ret = pairs.length === 1 ? pairs[0] : BooleanExpression.fromArgs(["AND"].concat(pairs));
              return invert ? BooleanExpression.invert(ret) : ret;
          }