Query Operators
Last updated
Last updated
Query operators can be used to construct query conditions in order to find data. Query operators are typically applied to a property and take a value or a document defining the conditions of the operation.
For example:
Or:
Or, in the case of logical operators (e.g. $and
, $or
), the operator takes an array of expressions:
Query operators can be used in a where
query argument or in a $match
pipeline stage .
When used in a where
query argument, the request looks similar to the following:
When used in a $match
pipeline stage, the request looks similar to the following:
Type
Description
Comparison Operators
For filtering results based on value comparisons.
Logical Operators
Join query clauses together or invert the meaning of a query expression
Evaluation Operators
Filter results based on the result of a regular expression
Geospatial Operators
Find locations within a distance of a central location.
Array Operators
Match on arrays, elements in an array, or size of arrays.
Operator
Description
Example
$eq
Selects documents where the value of the property is equal to the passed in value.
{“c_bpm”: {“$eq”: 70}}
$gt
Selects documents where the value of the property is greater than the passed in value.
{“c_bpm”: {“$gt”: 70}}
$gte
Selects documents where the value of the property is greater than or equal to the passed in value.
{“c_bpm”: {“$gte”: 70}}
$lt
Selects documents where the value of the property is lesser than the passed in value.
{“c_bpm”: {“$lt”: 70}}
$lte
Selects documents where the value of the property is lesser than or equal to the passed in value.
{“c_bpm”: {“$lte”: 70}}
$ne
Selects documents where the value of the property is not equal to the passed in value.
{“c_bpm”: {“$ne”: 70}}
$in
Selects documents where the property matches any of the passed in values.
{“c_bpm”: {“$in”: [65, 66, 67, 68, 69, 70]}}
$nin
Selects documents where the property matches none of the passed in values.
{“c_bpm”: {“$nin”: [65, 66, 67, 68, 69, 70]}}
Operator
Description
Example
$and
Selects documents where all passed in conditions are met.
{“$and”: [{“c_bpm”: {“$gt”: 70}}, {“c_bpm”: {“$lt”: 100}}] }
$or
Selects documents where any passed in conditions are met.
{“$or”: [{“c_bpm”: {“$gt”: 70}}, {“c_bmi”: {“$gt”: 24.9}}] }
$not
Evaluates to true if the property or expression evaluates to false.
{“$not”: “c_active”}
$nor
Selects documents where none of the passed in conditions are met.
{“$nor”: [{“c_bpm”: {“$gt”: 70}}, {“c_bmi”: {“$gt”: 24.9}}] }
Operator
Description
Example
$regex
Selects documents where the string property matches the passed in regular expression.
{“name.first”: {“$regex”: “/^samplename/i”}}
Operator
Description
Example
$within
Selects documents with geospatial data that exists entirely within a specified shape.
{"c_location": {"$within": {"$center": [-122.143019, 37.441883], "$radius": 10}}}
Operator
Description
Example
$all
Selects documents where the array property contains all of the passed in values.
{“roles”: {“$all”: [“000000000000000000000007”, “0123456789ab0123456789ab”]}}
$elemMatch
Selects documents where all properties of an array of document properties match the passed in expression. $elemMatch does not limit the results within the array, but filters the entire document for contained entries.
{“c_docs”: {“$elemMatch”: {“c_foo”: “yes”, “c_bar”: true}}}
$size
Selects documents where the size of the array property matches the passed in values.
{“c_arr”: {“$size”: 20}}