com.mongodb
Class QueryBuilder

java.lang.Object
  extended by com.mongodb.QueryBuilder

public class QueryBuilder
extends Object

Utility for creating DBObject queries

Author:
Julson Lim

Constructor Summary
QueryBuilder()
          Creates a builder with an empty query
 
Method Summary
 QueryBuilder all(Object object)
          Equivalent of the $all operand
 QueryBuilder and(DBObject... ands)
          Equivalent to an $and operand
 QueryBuilder and(String key)
          Equivalent to QueryBuilder.put(key).
 QueryBuilder elemMatch(DBObject match)
          Equivalent to the $elemMatch operand
 QueryBuilder exists(Object object)
          Equivalent of the $exists operand
 DBObject get()
          Creates a DBObject query to be used for the driver's find operations
 QueryBuilder greaterThan(Object object)
          Equivalent to the $gt operator
 QueryBuilder greaterThanEquals(Object object)
          Equivalent to the $gte operator
 QueryBuilder in(Object object)
          Equivalent of the $in operand
 QueryBuilder is(Object object)
          Equivalent of the find({key:value})
 QueryBuilder lessThan(Object object)
          Equivalent to the $lt operand
 QueryBuilder lessThanEquals(Object object)
          Equivalent to the $lte operand
 QueryBuilder mod(Object object)
          Equivalent of the $mod operand
 QueryBuilder near(double x, double y)
          Equivalent of the $near operand
 QueryBuilder near(double x, double y, double maxDistance)
          Equivalent of the $near operand
 QueryBuilder nearSphere(double longitude, double latitude)
          Equivalent of the $nearSphere operand
 QueryBuilder nearSphere(double longitude, double latitude, double maxDistance)
          Equivalent of the $nearSphere operand
 QueryBuilder not()
          Equivalent to $not meta operator.
 QueryBuilder notEquals(Object object)
          Equivalent of the $ne operand
 QueryBuilder notIn(Object object)
          Equivalent of the $nin operand
 QueryBuilder or(DBObject... ors)
          Equivalent to an $or operand
 QueryBuilder put(String key)
          Adds a new key to the query if not present yet.
 QueryBuilder regex(Pattern regex)
          Passes a regular expression for a query
 QueryBuilder size(Object object)
          Equivalent of the $size operand
static QueryBuilder start()
          returns a new QueryBuilder
static QueryBuilder start(String key)
          Creates a new query with a document key
 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
 QueryBuilder withinCenter(double x, double y, double radius)
          Equivalent of the $within operand, used for geospatial operation
 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.
 QueryBuilder withinPolygon(List<Double[]> points)
          Equivalent to a $within operand, based on a bounding polygon represented by an array of points
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QueryBuilder

public QueryBuilder()
Creates a builder with an empty query

Method Detail

start

public static QueryBuilder start()
returns a new QueryBuilder

Returns:

start

public static QueryBuilder start(String key)
Creates a new query with a document key

Parameters:
key - MongoDB document key
Returns:
Returns a new QueryBuilder

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:
Returns the current QueryBuilder with an appended "greater than" query

greaterThanEquals

public QueryBuilder greaterThanEquals(Object object)
Equivalent to the $gte operator

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended "greater than or equals" query

lessThan

public QueryBuilder lessThan(Object object)
Equivalent to the $lt operand

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended "less than" query

lessThanEquals

public QueryBuilder lessThanEquals(Object object)
Equivalent to the $lte operand

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended "less than or equals" query

is

public QueryBuilder is(Object object)
Equivalent of the find({key:value})

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended equality query

notEquals

public QueryBuilder notEquals(Object object)
Equivalent of the $ne operand

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended inequality query

in

public QueryBuilder in(Object object)
Equivalent of the $in operand

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended "in array" query

notIn

public QueryBuilder notIn(Object object)
Equivalent of the $nin operand

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended "not in array" query

mod

public QueryBuilder mod(Object object)
Equivalent of the $mod operand

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended modulo query

all

public QueryBuilder all(Object object)
Equivalent of the $all operand

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended "matches all array contents" query

size

public QueryBuilder size(Object object)
Equivalent of the $size operand

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended size operator

exists

public QueryBuilder exists(Object object)
Equivalent of the $exists operand

Parameters:
object - Value to query
Returns:
Returns the current QueryBuilder with an appended exists operator

regex

public QueryBuilder regex(Pattern regex)
Passes a regular expression for a query

Parameters:
regex - Regex pattern object
Returns:
Returns the current QueryBuilder with an appended regex query

elemMatch

public QueryBuilder elemMatch(DBObject match)
Equivalent to the $elemMatch operand

Parameters:
match - the object to match
Returns:
Returns the current QueryBuilder with an appended elemMatch operator

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:

near

public QueryBuilder near(double x,
                         double y)
Equivalent of the $near operand

Parameters:
x - x coordinate
y - y coordinate
Returns:

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:

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:

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:

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:

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:

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

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:
Returns the current QueryBuilder with an appended "not" meta operator

or

public QueryBuilder or(DBObject... ors)
Equivalent to an $or operand

Parameters:
ors - the list of conditions to or together
Returns:
Returns the current QueryBuilder with appended "or" operator

and

public QueryBuilder and(DBObject... ands)
Equivalent to an $and operand

Parameters:
ands - the list of conditions to and together
Returns:
Returns the current QueryBuilder with appended "and" operator

get

public DBObject get()
Creates a DBObject query to be used for the driver's find operations

Returns:
Returns a DBObject query instance
Throws:
RuntimeException - if a key does not have a matching operand