Package com.mongodb

Class QueryBuilder


  • public class QueryBuilder
    extends Object
    Utility for creating DBObject queries
    MongoDB documentation
    Querying
    • Constructor Detail

      • QueryBuilder

        public QueryBuilder()
        Creates a builder with an empty query
    • Method Detail

      • start

        public static QueryBuilder start()
        Returns a new QueryBuilder.
        Returns:
        a builder
      • start

        public static QueryBuilder start​(String key)
        Creates a new query with a document key
        Parameters:
        key - MongoDB document key
        Returns:
        this
      • put

        public QueryBuilder put​(String key)
        Adds a new key to the query if not present yet. Sets this key as the current key.
        Parameters:
        key - MongoDB document key
        Returns:
        this
      • and

        public QueryBuilder and​(String key)
        Equivalent to QueryBuilder.put(key). Intended for compound query chains to be more readable, e.g. QueryBuilder.start("a").greaterThan(1).and("b").lessThan(3)
        Parameters:
        key - MongoDB document key
        Returns:
        this
      • greaterThan

        public QueryBuilder greaterThan​(Object object)
        Equivalent to the $gt operator
        Parameters:
        object - Value to query
        Returns:
        this
      • greaterThanEquals

        public QueryBuilder greaterThanEquals​(Object object)
        Equivalent to the $gte operator
        Parameters:
        object - Value to query
        Returns:
        this
      • lessThan

        public QueryBuilder lessThan​(Object object)
        Equivalent to the $lt operand
        Parameters:
        object - Value to query
        Returns:
        this
      • lessThanEquals

        public QueryBuilder lessThanEquals​(Object object)
        Equivalent to the $lte operand
        Parameters:
        object - Value to query
        Returns:
        this
      • is

        public QueryBuilder is​(Object object)
        Equivalent of the find({key:value})
        Parameters:
        object - Value to query
        Returns:
        this
      • notEquals

        public QueryBuilder notEquals​(Object object)
        Equivalent of the $ne operand
        Parameters:
        object - Value to query
        Returns:
        this
      • in

        public QueryBuilder in​(Object object)
        Equivalent of the $in operand
        Parameters:
        object - Value to query
        Returns:
        this
      • notIn

        public QueryBuilder notIn​(Object object)
        Equivalent of the $nin operand
        Parameters:
        object - Value to query
        Returns:
        this
      • mod

        public QueryBuilder mod​(Object object)
        Equivalent of the $mod operand
        Parameters:
        object - Value to query
        Returns:
        this
      • all

        public QueryBuilder all​(Object object)
        Equivalent of the $all operand
        Parameters:
        object - Value to query
        Returns:
        this
      • size

        public QueryBuilder size​(Object object)
        Equivalent of the $size operand
        Parameters:
        object - Value to query
        Returns:
        this
      • exists

        public QueryBuilder exists​(Object object)
        Equivalent of the $exists operand
        Parameters:
        object - Value to query
        Returns:
        this
      • regex

        public QueryBuilder regex​(Pattern regex)
        Passes a regular expression for a query
        Parameters:
        regex - Regex pattern object
        Returns:
        this
      • elemMatch

        public QueryBuilder elemMatch​(DBObject match)
        Equivalent to the $elemMatch operand
        Parameters:
        match - the object to match
        Returns:
        this
      • withinCenter

        public QueryBuilder withinCenter​(double x,
                                         double y,
                                         double radius)
        Equivalent of the $within operand, used for geospatial operation
        Parameters:
        x - x coordinate
        y - y coordinate
        radius - radius
        Returns:
        this
      • near

        public QueryBuilder near​(double x,
                                 double y)
        Equivalent of the $near operand
        Parameters:
        x - x coordinate
        y - y coordinate
        Returns:
        this
      • near

        public QueryBuilder near​(double x,
                                 double y,
                                 double maxDistance)
        Equivalent of the $near operand
        Parameters:
        x - x coordinate
        y - y coordinate
        maxDistance - max distance
        Returns:
        this
      • nearSphere

        public QueryBuilder nearSphere​(double longitude,
                                       double latitude)
        Equivalent of the $nearSphere operand
        Parameters:
        longitude - coordinate in decimal degrees
        latitude - coordinate in decimal degrees
        Returns:
        this
      • nearSphere

        public QueryBuilder nearSphere​(double longitude,
                                       double latitude,
                                       double maxDistance)
        Equivalent of the $nearSphere operand
        Parameters:
        longitude - coordinate in decimal degrees
        latitude - coordinate in decimal degrees
        maxDistance - max spherical distance
        Returns:
        this
      • withinCenterSphere

        public QueryBuilder withinCenterSphere​(double longitude,
                                               double latitude,
                                               double maxDistance)
        Equivalent of the $centerSphere operand mostly intended for queries up to a few hundred miles or km.
        Parameters:
        longitude - coordinate in decimal degrees
        latitude - coordinate in decimal degrees
        maxDistance - max spherical distance
        Returns:
        this
      • withinBox

        public QueryBuilder withinBox​(double x,
                                      double y,
                                      double x2,
                                      double y2)
        Equivalent to a $within operand, based on a bounding box using represented by two corners
        Parameters:
        x - the x coordinate of the first box corner.
        y - the y coordinate of the first box corner.
        x2 - the x coordinate of the second box corner.
        y2 - the y coordinate of the second box corner.
        Returns:
        this
      • withinPolygon

        public QueryBuilder withinPolygon​(List<Double[]> points)
        Equivalent to a $within operand, based on a bounding polygon represented by an array of points
        Parameters:
        points - an array of Double[] defining the vertices of the search area
        Returns:
        this
      • text

        public QueryBuilder text​(String search)
        Equivalent to a $text operand.
        Parameters:
        search - the search terms to apply to the text index.
        Returns:
        this
      • text

        public QueryBuilder text​(String search,
                                 @Nullable
                                 String language)
        Equivalent to a $text operand.
        Parameters:
        search - the search terms to apply to the text index.
        language - the language to use.
        Returns:
        this
      • not

        public QueryBuilder not()
        Equivalent to $not meta operator. Must be followed by an operand, not a value, e.g. QueryBuilder.start("val").not().mod(Arrays.asList(10, 1))
        Returns:
        this
      • or

        public QueryBuilder or​(DBObject... ors)
        Equivalent to an $or operand
        Parameters:
        ors - the list of conditions to or together
        Returns:
        this
      • and

        public QueryBuilder and​(DBObject... ands)
        Equivalent to an $and operand
        Parameters:
        ands - the list of conditions to and together
        Returns:
        this
      • get

        public DBObject get()
        Creates a DBObject query to be used for the driver's find operations
        Returns:
        this
        Throws:
        RuntimeException - if a key does not have a matching operand